繁体   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