簡體   English   中英

連接表和聚合/子查詢

[英]Joining tables and aggregation/sub queries

我有 2 個表格,如下所示。

表格1

訂單編號 項目代碼 銷售價格 訂購數量 全部的 發貨數量
1000 111 10 5 50 美元 1
1000 222 20 10 200 美元 2
1000 333 30 15 450 美元 0

我有另一個表只存儲發票金額的詳細信息(即我們運送了多少)

表 2(因為我們只運送 10x1 和 20x2 = 50 美元)

訂單編號 發票總額
1000 50 美元

我寫了以下查詢,

select T1.Order_ID, 
       sum(T1.Qty_Ordered) as Qty_Ordered, 
       sum(T1.Total) as Total_Amt_ordered, 
       sum(T1.Qty_shipped) as Qty_Shipped, 
       sum(T2.Invoice_total) 
  from T1 join 
       T2 on T1.Order_ID = T2.Order_ID

該查詢為我提供了以下 output,(它為 T1 訂單的所有行增加了 50 美元)。

訂單編號 訂購數量 全部的 發貨數量 發票總額
1000 30 700 美元 3 150 美元

而現在,我希望我的 output 為:

訂單編號 訂購數量 全部的 發貨數量 發票總額
1000 30 700 美元 3 50 美元

(因為我們只發貨了 50 美元)

我應該對我的查詢進行哪些更改? 我知道我可以對其進行硬編碼,但我的數據庫有 1000 個訂單和 1000 個半發貨訂單。 我想跟蹤所有訂單的已發貨 $(發票 $)。

如果我理解正確,你想要:

select T2.Order_ID, T2.Invoice_total, 
       sum(T1.Qty_Ordered) as Qty_Ordered, 
       sum(T1.Total) as Total_Amt_ordered, 
       sum(T1.Qty_shipped) as Qty_Shipped, 
from T2 join 
     T1
     on T1.Order_ID = T2.Order_ID
group by T2.Order_ID, T2.Invoice_total;

也就是說,您不想聚合Invoice_total 你只希望它是一個按鍵group by

暫無
暫無

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

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