伙计我有一个查询,它将计算一定的总和,相同的逻辑,相同的代码,但具有不同的where子句,我可以在一个查询中执行此操作吗?例如:
Select SUM( mi.myitem_price * msi.my_item_quantity) as order_sum from sometable where mi.myitem_order_id = 'somevalue';
第二次查询:
Select SUM( mi.myitem_price * msi.my_item_quantity) as location_sum from sometable where mi.myitem_location_id = 'somevalue';
为清楚起见,第一个查询将计算不同位置的所有订单,而第二个查询仅计算每个位置。我需要同时使用不同的值来获取order_sum
和location_sum
。
答案 0 :(得分:1)
您可以尝试这种方式(使用条件聚合)
SELECT SUM(CASE WHEN mi.myitem_order_id = 'somevalue'
THEN mi.myitem_price * msi.my_item_quantity END) order_sum,
SUM(CASE WHEN mi.myitem_location_id = 'somevalue'
THEN mi.myitem_price * msi.my_item_quantity END) location_sum
-- WHERE mi.myitem_order_id = 'somevalue'
-- OR mi.myitem_location_id = 'somevalue'
FROM sometable
答案 1 :(得分:0)
你也可以使用这样的查询
SELECT (Select SUM( mi.myitem_price * msi.my_item_quantity)
from sometable AS mi where mi.myitem_order_id = 'somevalue') as order_sum,
(Select SUM( mi.myitem_price * msi.my_item_quantity)
from sometable AS mi where mi.myitem_location_id = 'somevalue') as location_sum