我有一个名为'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/

10-16 15:26