【发布时间】:2015-04-26 14:47:49
【问题描述】:
我有三个表:Products、Purchase、Invoice
产品表:
Productct_no 名称
1 A
2 B
3 C
采购表:
Purchase_no Product_no 数量
001 1 81
002 2 150
003 3 10
发票表:
发票编号 产品编号 数量
001 1 20
002 2 10
003 3 10
我想获取每个产品的采购数量和发票数量,我使用了以下查询
product_no sum(P.qty) sum(I.qty)
001 162 160
002 150 50
003 10 10
编辑:预期结果
product_no sum(P.qty) sum(I.qty)
001 81 20
002 150 10
003 10 10
我的查询给了我错误的响应(数量总和错误),请帮助我更正我的查询以正确获得结果。谢谢
【问题讨论】:
-
您的预期结果是什么?
-
省略总和和分组依据,看看返回了什么结果,这样你就知道你在求和什么数据。
-
无论如何看起来像是一对一的映射。分组似乎是多余的
-
这里好像有几个错别字,不清楚你的意思。在您的结果表中,您有两次
sum(P.qty)。也很清楚你想要什么;每个产品在每个表上只存在一次,所以不清楚为什么要总和而不是结果? -
@pala_ 我认为这不是现实中的 1:1 映射。可能有其他发票和相同产品的购买,该示例仅显示 1:1 映射。我怀疑上面显示的数据不完整。此外,如果任一左连接返回多于一行(我怀疑它实际上是这样),则由于扇出,这是执行此查询的错误方法。