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
MySQL select语句中的多个和取决于不同字段中的布尔值_Mysql_Sum - Fatal编程技术网

MySQL select语句中的多个和取决于不同字段中的布尔值

MySQL select语句中的多个和取决于不同字段中的布尔值,mysql,sum,Mysql,Sum,为什么这个查询没有给我正确的总数 Select H.AccountNo,IF(G.Credit=0,SUM(F.Charge),NULL) AS Debits,IF(G.Credit=1,SUM(F.Charge),NULL) AS Credits from transdetails F left join transhead G on F.Transhead=G.Seqno left join Accounts H on H.SeqNo=G.Ac

为什么这个查询没有给我正确的总数

     Select H.AccountNo,IF(G.Credit=0,SUM(F.Charge),NULL) AS Debits,IF(G.Credit=1,SUM(F.Charge),NULL) AS Credits
     from transdetails F
       left join transhead G on F.Transhead=G.Seqno
       left join Accounts H on H.SeqNo=G.Account
     Group by H.AccountNo
我试图在一行上列出既有费用又有付款的帐户,费用和付款之间的唯一区别是字段信用,它是一个布尔值,可以是1或0

仍然没有给我正确的值,因为我知道账户000223有付款,因此信用不能为0

    H.Accounts  Debits     Credits
    000221      131.00     NULL
    000222      287.70     NULL
    000223      70980.20   NULL
    000224      13280.42   NULL
试试这个

 Select H.AccountNo,SUM(IF(G.Credit=0,F.Charge,0)) AS Debits,SUM(IF(G.Credit=1,F.Charge,0)) AS Credits
 from transdetails F
 left join transhead G on F.Transhead=G.Seqno
 left join Accounts H on H.SeqNo=G.Account
 Group by H.AccountNo

提供样本数据和结果,以便我们知道您所说的“不…正确的总数”是什么意思。@Gordon Linoff仍然没有给我正确的值,因为我知道账户000223有付款,因此贷项不能为0'H。账户借记贷项000221 131.00 NULL 000222 287.70 NULL 000223 70980.20 NULL 000224 13280.42 NULL'Brilliant!!谢谢