[英]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.