没有行提取但需要值

时间:2014-12-16 21:17:25

标签: sql sql-server select group-by

我需要以下查询的帮助。

Select date, Source,count(*) as TOTALCOUNT
from Table A
where date = '2014-10-15' and Source = 'EMAIL'
group by date,source

特定日期没有EMAIL source。所以,它没有给出任何行。 但我希望在0中获得Totalcount,即使那天EMAIL不存在,但可以在第二天出现。

应该是,

Date,Source, Totalcount
15/10/14,Email,0

我使用ISNULL函数无效,因为没有产生任何行。

1 个答案:

答案 0 :(得分:1)

您可以使用"常数"进行连接。查询。这是一个丑陋的黑客,但它应该做到这一点:

SELECT    c.date, c.source, COALESCE(totalcount, 0)
FROM      (SELECT '2014-10-15' AS date, 'EMAIL' AS source) c
LEFT JOIN (SELECT   date, source, COUNT(*) AS totalcount
           FROM     a
           GROUP BY date, source) a 
       ON a.date = c.date AND a.source = c.source