たった 1 つの SQL クエリで 5 つの異なるテーブルの結果の合計を取得しようとしています。5 つのテーブルがあり、各テーブルには注文に属するレコードが含まれている可能性があります。5 つのテーブルのすべてのレコードの合計によって、合計注文価格が決まります。
このフォーラムで検索すると、次のクエリが思いつきました。
SELECT
OrderTotal.total + Shipping.amount + Service.amount - Gift.amount - RMA.total as TotalCosts
FROM
(SELECT SUM(price * amount) AS total FROM order WHERE order_id=123456) OrderTotal
(SELECT amount FROM shipping WHERE order_id=123456) Shipping,
(SELECT amount FROM service WHERE order_id=123456) Service,
(SELECT SUM(price * amount) AS total FROM rma WHERE order_id=123456) RMA,
(SELECT amount FROM gift WHERE order_id=123456) Gift
私が今直面している問題は、たとえば最後の SELECT が 0 行を返すと、TotalCosts の合計が返されないことです。
これを解決するには?