Mysql 在sql中组合多个列以求和
这里我得到的Mysql 在sql中组合多个列以求和,mysql,sql,Mysql,Sql,这里我得到的cr.credit值是相同值的倍数。但是我需要精确的数值来计算总的数值。有人能帮我得到答案吗 SELECT gm.id, gm.groupid, gm.tktno, gm.memberid, (COALESCE((g.emdue - ae.dividend), 0)) AS a, SUM(ra.debit) AS deb, SUM(DISTINCT ra.credit) AS cr, COALESCE((SUM(ra.debit) - SUM(ra.c
cr.credit
值是相同值的倍数。但是我需要精确的数值来计算总的数值。有人能帮我得到答案吗
SELECT
gm.id,
gm.groupid,
gm.tktno,
gm.memberid,
(COALESCE((g.emdue - ae.dividend), 0)) AS a,
SUM(ra.debit) AS deb,
SUM(DISTINCT ra.credit) AS cr,
COALESCE((SUM(ra.debit) - SUM(ra.credit)), 0) AS b,
COALESCE(SUM(cr.credit_value), 0) AS c,
COALESCE((COALESCE((g.emdue - ae.dividend), 0) - COALESCE((SUM(ra.debit) - SUM(ra.credit)), 0)
- COALESCE(SUM(cr.credit_value), 0)), 0) AS total
FROM groupmember gm
LEFT JOIN runningaccount ra
ON ra.group_id = gm.groupid
AND ra.ticket_no = gm.tktno
AND gm.memberid = ra.member_id
AND gm.id = ra.group_member_id
LEFT JOIN chitreceipt cr
ON gm.groupid = cr.groupid
AND gm.memberid = cr.memberid
AND gm.tktno = cr.tktno
LEFT JOIN groupnew g
ON g.id = gm.groupid
LEFT JOIN auctionentry ae
ON ae.groupid = gm.groupid
GROUP BY gm.memberid,
gm.groupid,
gm.tktno
您可以对该列执行distinct操作,然后求和,这样就可以得到不同的sum值。像
sum(distinct COALESCE(cr.credit_value,0))
无论您在哪里使用它,都可以像上面那样使用它。这是mySql。
nvl()
???问题被标记为MySQL
,并且没有nvl()
。您是指IsNull()
还是COALESCE()
?我在查询中使用了COALESCE()。