私は3つのテーブルを持っています:
order
orderline
(持っているorderID
)orderactions
(持っているorderID
)
それから私は必要SUM(of orderline.price)
としSUM(of orderactions.price)
ますorderID
。
私が使用したとき:
SELECT order.ID, SUM(orderlines.price), SUM(orderactions.price)
FROM order
LEFT JOIN orderlines ON orderlines.orderID=order.ID
LEFT JOIN orderactions ON orderactions.orderID=order.ID
WHERE order.ID=@orderID
GROUP BY order.ID
このorder.IDのorderlinesにorderactions
相当する結果が得られました。SUM(orderactions.price)*quantity
私が見つけた唯一の解決策は、正しい結果をもたらし、すべての「SUM」テーブルのサブクエリです。
SELECT order.ID
, (SELECT SUM(orderlines.price) FROM orderlines WHERE orderlines.orderId=order.ID)
, (SELECT SUM(orderactions.price) FROM orderactions WHERE orderactions.orderId=order.ID)
FROM order
WHERE order.ID=@orderID
質問:サブクエリは遅く、使用しないようにしているため、これに対する他の(より高速な)解決策はありますか?