mysql LEFT JOIN 使用SUM不准确

原sql如下:

SELECT a.id, SUM(a.contractAmount) as contractAmount,SUM(b.kpprice) as invoiceAmount FROM contract AS a LEFT JOIN invoice as b on a.id=b.contractid where a.adminid = '1' GROUP BY a.issuingUnit,a.invoiceTypes

希望contract表中的contractAmount字段根据GROUP BY条件使用sum统计,并且invoice表中的kpprice字段根据条件a.id=b.contractid使用sum数据统计。

现在情况是 SUM(b.kpprice) 数据是正常的,但是SUM(a.contractAmount)出现了重复相加的情况 因为LEFT JOIN的on a.id=b.contractid是有多条的情况,还不能去重,这个应该怎么调整,求大神指教

mysql
SUM
2023-06-19 12:59:00
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
福娃泡泡

left join的on 后面跟的字段应该跟 group by的字段一致,才能进行sum,否则会出现一对多的情况并且那个"多"不能合并成一,导致了多对一存在空白

可以试下改成这样

SELECT a.id, SUM(a.contractAmount) as contractAmount,SUM(b.kpprice) as invoiceAmount FROM contract AS a LEFT JOIN invoice as b on a.id=b.contractid where a.adminid = '1' GROUP BY b.contractid,a.issuingUnit,a.invoiceTypes
分享
微博
QQ
微信
回复
2023-06-19 14:16:59
相关问题
Polyline组件绘制坐标不准确
1880浏览 • 1回复 待解决
HarmonyOS 获取当前定位不准确
134浏览 • 1回复 待解决
HarmonyOS onScroll回调yoffset不准确问题
324浏览 • 1回复 待解决
HarmonyOS uv timer定时器不准确
228浏览 • 1回复 待解决
HarmonyOS List停止滑动回调不准确
172浏览 • 1回复 待解决
HarmonyOS 地图的路径规划功能不准确
207浏览 • 1回复 待解决
HarmonyOS Button 无法添加margin left right
140浏览 • 1回复 待解决
Left、Top为什么不生效?
691浏览 • 1回复 待解决
inner join 左右顺序为何不影响结果?
2479浏览 • 1回复 待解决
地图定位不准,是什么原因啊?
210浏览 • 1回复 待解决
django orm 如何使用 mysql now函数?
3257浏览 • 1回复 待解决
mysql的grant命令什么时候使用
2136浏览 • 1回复 待解决
获取app进程运行时间api疑似不准
299浏览 • 1回复 待解决
golang 使用go-sql-driver/mysql 查总条数
2641浏览 • 1回复 待解决
mysql数据类型使用int类型和string类型
2540浏览 • 1回复 待解决