簡體   English   中英

比較來自不同表的兩列的SUM()?

[英]Compare the SUM() of two columns from different tables?

我有以下兩個查詢:

-- Getting the total no. of items CLAIMED for a sales order
SELECT SUM(qty_claimed) As 'total_items_claimed'
FROM so_claim_item
WHERE sales_order_id = 1;

-- Getting the total no. of items originally ORDERED for a sales order
SELECT SUM(quantity) As 'total_items_ordered'
FROM sales_order_item
WHERE sales_order_id = 1;

-- If the sums of the two columns are equal, return 1 or true. 
-- Else, return 0 or false.

我需要比較不同表中這兩列的總和,以查看銷售訂單是否完整。

如果返回1,表示否。 要求保護的項目等於否。 訂購的商品,表示銷售訂單已完成。 否則,銷售訂單將保持無人認領/部分無人認領的狀態。

到目前為止,這是我能想到的最好的解決方案, 但我希望將其寫入單個查詢中,如果可能的話,該查詢將僅返回一個值。 但是,如果您有更好的建議,我會很高興。

僅使用CASE嗎?

SELECT CASE
       WHEN
       (
           SELECT SUM(qty_claimed) AS 'total_items_claimed'
           FROM so_claim_item
           WHERE sales_order_id = 1
       ) =
       (
           SELECT SUM(quantity) AS 'total_items_ordered'
           FROM sales_order_item
           WHERE sales_order_id = 1
       ) THEN
           1
       ELSE
           0
   END;

嘗試使用以下方式:

    SELECT SUM(qty_claimed) As 'total_items_claimed'
    FROM so_claim_item A
    WHERE A.sales_order_id = 1    
    having SUM(qty_claimed) =(SELECT SUM(quantity) As 'total_items_ordered') 
                     FROM sales_order_item B
                     WHERE B.sales_order_id = 1)

這是有關具有的更多信息。

我建議通過將值放在FROM子句中來做到這一點:

SELECT (sci.total_items_claimed = soi.total_items_ordered) as is_same
FROM (SELECT SUM(qty_claimed) As total_items_claimed
      FROM so_claim_item
      WHERE sales_order_id = 1
     ) sci CROSS JOIN
     (SELECT SUM(quantity) As total_items_ordered
      FROM sales_order_item
      WHERE sales_order_id = 1
     ) soi;

您也可以在SELECT使用子查詢來執行此操作:

SELECT ( (SELECT SUM(qty_claimed) As total_items_claimed
          FROM so_claim_item
          WHERE sales_order_id = 1
         ) =
         (SELECT SUM(quantity) As total_items_ordered
          FROM sales_order_item
          WHERE sales_order_id = 1
         )
       ) as is_same;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM