Heim > Backend-Entwicklung > PHP-Tutorial > php或者mysql求一算法?

php或者mysql求一算法?

WBOY
Freigeben: 2016-06-23 14:05:42
Original
897 Leute haben es durchsucht


这是数据库查询得到的结果。
现在需要显示结果为(price原本是直得到结果,为了方便我写成公式出来):
price           order_id   
(20/60)*700     x0045183
(40/60)*700     x0045183
  0             x0045178

计算思路为:相同的订单号,(20/60)*70,(40/60)*70 ,不同订单号直接取price值。


回复讨论(解决方案)

60 是指定的?还有70,上面结果又是 * 700 ,就看不懂了。

60 是指定的?还有70,上面结果又是 * 700 ,就看不懂了。

计算思路为:相同的订单号,(20/60)*700,(40/60)*700 ,不同订单号直接取price值。是这样的。700是相同订单price相加得到的。60为相同订单cost3相加得到的。

优选SQL完成

select cost3, (cost3/sum_cost3)*sum_price as price, a.order_id   form    tbl_name a,    (select order_id, sum(cost3) as sum_cost3, sum(price) as sum_price from tbl_name group by order_id) t  where a.order_id=t.order_id
Nach dem Login kopieren

用 php 还麻烦些
直接查询后
while($r = mysql_fetch_assoc($rs)) {  $st[$r['order_id']['cost3'] += $r['cost3'];  $st[$r['order_id']['price'] += $r['price'];}mysql_data_seek($rs, 0);while($r = mysql_fetch_assoc($rs)) {  $res[] = ($r['cost3']/$st['cost3'])*$st['price'];}
Nach dem Login kopieren

 select a.order_id , (select (a.cost3/sum(cost3) * sum(price))  from od where order_id=a.order_id group by order_id) as price from od a;
Nach dem Login kopieren

上面的方法都实用,多谢哈。

select a.order_id , (select (a.cost3/sum(cost3) * sum(price)),sum(price)  from od where order_id=a.order_id group by order_id) as price from od a;
Nach dem Login kopieren
但是为什么加了个sum(price) 提示:Operand should contain 1 column(s)

SQL code?123select a.order_id , (select (a.cost3/sum(cost3) * sum(price)),sum(price) from od where order_id=a.order_id group by order_id) as price from od a;但是为什么加了个sum(price) 提示:Operand…… 多加一个字段为什么不行?

里面的子查询有两个字段,那样写是不行的

select a.order_id , (select (a.cost3/sum(cost3) * sum(price))  from od where order_id=a.order_id group by order_id) as price,(select sum(price)  from od where order_id=a.order_id group by order_id) as sum_price from od a;
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage