【问题标题】:No rows fetching but need a value [duplicate]没有行获取但需要一个值[重复]
【发布时间】:2014-12-16 21:17:25
【问题描述】:

我需要一些关于以下查询的帮助。

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

某一天没有EMAIL source。所以,它没有给出任何行。 但我想在Totalcount 中获得0,即使EMAIL 当天不在,但可以在第二天出现。

应该是这样的,

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

我使用了ISNULL 函数没有工作,因为没有产生任何行。

【问题讨论】:

    标签: sql sql-server select group-by


    【解决方案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
    

    【讨论】:

    • 差不多了,我想你需要一个ISNULL(,) 周围的totalcount
    • @Sev09 是的,有点错过了这里的标记 :-( 我选择了coalesce,它对 ANSI 更友好,但原则上你是正确的。
    • 提问者最好使用包含所有日期的表格,以防某个日期没有数据(我意识到在这种情况下)。 stackoverflow.com/questions/6125504/…
    猜你喜欢
    • 2019-07-06
    • 2011-02-04
    • 2015-06-28
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2021-01-08
    • 2017-12-04
    • 2013-12-09
    相关资源
    最近更新 更多