gpt4 book ai didi

sql server 2005错误输出

转载 作者:行者123 更新时间:2023-12-03 02:46:49 25 4
gpt4 key购买 nike

我有 3 张表库存,内向,发行

股票表的列和数据:

part_no | part_name | totalqty
10100 ciol 30
112233 abc 20
123456 coper 50

内表:

part_no | qty
123456 10
123456 20
10100 20
112233 15
10100 25

问题表:

part_no | qty
112233 20
112233 15
123456 10
112233 25
10100 40
10100 20

我想要的输出:

part_no | part_name  |inwardQty |issueQty
10100 coil 45 60
112233 abc 15 60
123456 coper 30 10

以下是我编写的查询,但没有给出我想要的输出

select s.part_no,s.part_name,sum(i.qty) as inwardQty,sum(p.qty)as issueQty 
from stock s
left join inward i on s.part_no = i.part_no
left join issue p on s.part_no = p.part_no
group by
s.part_no,s.part_name

通过此查询获取以下输出:

part_no | part_name  |inwardQty |issueQty
10100 coil 90 120
112233 abc 45 60
123456 coper 30 20

最佳答案

问题是您将inward每一行与issue每一行进行匹配,对于他们正在处理同一部分。我认为子查询在这里最好:

select s.part_no,s.part_name,i.qty as inwardQty,p.qty as issueQty 
from stock s
left join
(select part_no,sum(qty) as qty from inward group by part_no) i on s.part_no = i.part_no
left join
(select part_no,sum(qty) as qty from issue group by part_no) p on s.part_no = p.part_no

所以现在,每个连接中只有一行(或零行)需要连接,并且您不会获得笛卡尔积。

关于sql server 2005错误输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11339092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com