我有一个名为'records'的mysql表,其结构如下:
docdate,db,cr,总计
和两个查询,例如:
1. SELECT docdate, SUM(total) as ins FROM records where db='somefilter' AND 'someotherfilters' GROUP BY docdate
2. SELECT docdate, SUM(total) as outs FROM records where cr='somefilter' GROUP BY docdate
我想在一个sql语句中达到的结果是:
docdate ins outs
2015-12-15 NULL 1200.00
2015-12-16 1000.00 NULL
2015-12-17 2500.00 2000.00
任何想法将不胜感激。
特纳克斯
最佳答案
如果您不介意用0而不是NULL,则可以在IF
内放置一个SUM
,如下所示:
SELECT
docdate,
SUM(IF(db='somefilter' AND 'someotherfilters', total, 0)) as ins,
SUM(IF(cr='somefilter', total, 0)) as outs
FROM records
GROUP BY docdate
编辑:
如果您确实想拥有
NULL
值,则可以将SUM
包装在NULLIF
语句中... NULLIF(SUM(...), 0) AS ...
关于mysql - 如何mysql连接来自同一表的两个选择查询结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34379821/