【发布时间】:2021-07-03 18:05:27
【问题描述】:
我有 2 个表格,如下所示。
表1
| Order ID | Item_code | Sales_Price | Qty_ordered | Total | Qty shipped |
|---|---|---|---|---|---|
| 1000 | 111 | 10 | 5 | $50 | 1 |
| 1000 | 222 | 20 | 10 | $200 | 2 |
| 1000 | 333 | 30 | 15 | $450 | 0 |
我有另一个表,其中仅存储发票金额的详细信息(即我们运送了多少)
Table2(因为我们只运送了 10x1 和 20x2 = 50 美元)
| Order ID | Invoice_total |
|---|---|
| 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
这个查询给了我以下输出,(它将 50 美元添加到 T1 订单的所有行)。
| Order ID | Qty_ordered | Total | Qty shipped | Invoice_total |
|---|---|---|---|---|
| 1000 | 30 | $700 | 3 | $150 |
而现在,我希望我的输出如下:
| Order ID | Qty_ordered | Total | Qty shipped | Invoice_total |
|---|---|---|---|---|
| 1000 | 30 | $700 | 3 | $50 |
(因为我们只运送了 50 美元)
我应该对我的查询进行哪些更改? 我知道我可以对其进行硬编码,但我的数据库有 1000 个订单和 1000 个半发货订单。我想跟踪所有订单的运费 $(发票 $)。
【问题讨论】:
标签: sql sql-server tsql join aggregation