这是数据库查询的结果。
现在您需要将结果显示为(price原本是一个直接结果,方便我写公式):
price order _ ID
(20/60)* 70045183
(40/60)* 70045183
0x 0045178[/br]
回复讨论(解决方案)
60被指定?还有70,上面的结果是* 700,看不懂。
60被指定?还有70,上面的结果是* 700,看不懂。
计算思路是:同一个订单号,(20/60)*700,(40/60)*700,不同订单号直接取价格值。事情是这样的。700是同一订单价格的总和。60是同一订单成本3的总和。
Select cost 3,(cost 3/Sum _ cost 3)* Sum _ price as price,a. order _ id form TBL _ name a,(select order _ id,sum (cost 3) as sum _ cost 3,Sum(price)as Sum _ price from TBL _ name group by order _ id)其中a. order _ id = t. order _ id
直接查询后用php
麻烦一点,while($ r = MySQL _ fetch _ assoc($ RS)){ $ ST[$ r[' order _ id '][' cost 3 ']+= $ r[' cost 3 '];$ ST[$ r[' order _ id '][' price ']+= $ r[' price '];}mysql_data_seek($rs,0);while($ r = MySQL _ fetch _ assoc($ RS)){ $ RES[]=($ r[' cost 3 ']/$ ST[' cost 3 '])* $ ST[' price '];}
select a.order_id,(select(a . cost 3/sum(cost 3)* sum(price))from od其中order _ id = a . order _ id group by order _ id)作为价格from od a;
以上方法比较实用,谢谢。
select a.order_id,(select(a . cost 3/sum(cost 3)* sum(price)),sum(price) from od其中order _ id = a . order _ id group by order _ id)作为价格from od a;但是你为什么要添加一个sum(price)提示:opera并且应该包含1列?
SQL代码?123select a.order_id,(select(a . cost 3/sum(cost 3)* sum(price)),sum(price) from od其中order _ id = a . order _ id group by order _ id)作为价格from od a;但是为什么加了一个sum(价格)提示:Opera...为什么不多加一个字段呢?
其中的子查询有两个字段,所以这样写是不可接受的
select a.order_id,(select(a . cost 3/sum(cost 3)* 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;