Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在sql中组合多个列以求和_Mysql_Sql - Fatal编程技术网

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()。