Sql 项目出现在报告中的天数

Sql 项目出现在报告中的天数,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我有一个存储特定报告每日运行的表 DateAdded NodeId Field1Value Field1Threshold etc 我现在有一个新的要求,列出NodeId在报告中出现的天数。因此,如果DateAdded列为 2013-03-01 <-- Run date 2013-02-28 2013-02-27 2013-02-26 <-- End of date sequence. Return 4 days 2013-02-13 2013-01-07 对于只出现一

我有一个存储特定报告每日运行的表

DateAdded NodeId Field1Value Field1Threshold etc
我现在有一个新的要求,列出NodeId在报告中出现的天数。因此,如果DateAdded列为

2013-03-01   <-- Run date
2013-02-28
2013-02-27
2013-02-26   <-- End of date sequence.  Return 4 days
2013-02-13
2013-01-07
对于只出现一次的NodeId,它将显示相同的结果,就像它的第一次和最后一次出现在同一天一样


SQL Fiddle:

这是否回答了您的问题

select nodeid, count(distinct dateAdded) as NumDays
from DailyRuns dr
group by nodeid

不幸的是,它不起作用。这可能是我的错,这个盒子不能让我粘贴我需要的东西to@Hecatonchires-我有打字错误。请现在试一试。您可以通过我提供的SQL Fiddle链接进行检查。更新的版本看起来更好,特别是在我颠倒了DateAdd()之后:)我有很多空值,空值用于fl_NodeId,[Days On]。我想他们;d是例如:6039,至少1。@赫卡通奇尔斯:你检查过我提供的SQL\u小提琴链接了吗?不幸的是,这不能解释序列中的中断。
SELECT fl.NodeId, DATEDIFF(day, fl.FirstDate, fl.LastDate) [Days On] FROM
(SELECT NodeId, MIN(DateAdded) [FirstDate], MAX(DateAdded) [LastDate]
FROM DailyRuns
GROUP BY NodeId
) fl
select nodeid, count(distinct dateAdded) as NumDays
from DailyRuns dr
group by nodeid