gpt4 book ai didi

mysql - 使用分组依据对特定列进行求和以及如何避免由此产生的最少连接表值?

转载 作者:行者123 更新时间:2023-11-29 09:52:57 25 4
gpt4 key购买 nike

我使用左连接查询选择了3个表,我想要第二个表列值的总和,但是通过添加第三个表连接,我们在求和第二个表列值时得到一些额外的列,我需要避免这种情况

这里解释一下,缩进(表 1)

indent_no   |   indent_name  |  request_qty
1131 AAA 834

采购订单(表2)

pur_id  |  pur_qty  |  indent_no
121 34 1131
122 100 1131
123 10 1131

grn(表3)

grn_no |  grn_val   | pur_id
1 34 121
2 23 121
3 21 122

我的查询获取 sum(purchase_order.pur_qty) 它应该是 144 对但我得到 178,因为 grn 表包含 pur_id(121) 的 2 行请注意,我只能允许对 indents.indent_no 使用 group by 子句仅

我试图得到 144,但得到 178 ...如果你使用 group by buy_order.pur_id 并选择 sum(purchase_order.pur_qty)/count(grn.pur_id) ,你可以得到实际结果,但我不能使用按除 indents.indent_no 之外的列分组

select sum(purchase_order.pur_qty) from indents
left join purchase_order on purchase_order.indent_no = indents.indent_no
left join grn on grn.pur_id = purchase_order.pur_id
group by indents.indent_no

我想要结果

indent_no sum(purchase_order.pur_qty)  SUM(grn_val)
1131 144 78


最佳答案

Try this query,  

select indents.indent_no,sum(DISTINCT(purchase_order.pur_qty)),sum(grn.grn_val) from indents
left join purchase_order on purchase_order.indent_no = indents.indent_no
left join grn on grn.pur_id = purchase_order.pur_id
group by indents.indent_no

关于mysql - 使用分组依据对特定列进行求和以及如何避免由此产生的最少连接表值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54474702/

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