SQL 服务器 return 日期范围和指定值之间的关联值
SQL Server return date range and associated value between specified values
我正在使用如下查询从数据库中获取记录:
SELECT date as "Date", count(date) as "NumIssues"
FROM Issues
WHERE Date BETWEEN '2015-03-25' AND '2015-03-28'
GROUP BY date
ORDER BY date;
查询工作正常,但我需要它来获取结果,即使指定日期没有值并且 NumIssues 值 return 0。
解决这个问题的最好方法是放入 case 语句吗?提前致谢!
;WITH dates ( "Date" ) AS (
SELECT CONVERT( DATE, '2015-03-25' )
UNION ALL
SELECT DATEADD( DAY, 1, Date )
FROM dates
WHERE DATEADD( DAY, 1, Date ) < '2015-03-28'
)
SELECT d.Date
, COUNT(date) as "NumIssues"
FROM dates AS d
LEFT JOIN Issues AS i
ON i.date = d.Date
GROUP BY d.date
ORDER BY d.date;
我正在使用如下查询从数据库中获取记录:
SELECT date as "Date", count(date) as "NumIssues"
FROM Issues
WHERE Date BETWEEN '2015-03-25' AND '2015-03-28'
GROUP BY date
ORDER BY date;
查询工作正常,但我需要它来获取结果,即使指定日期没有值并且 NumIssues 值 return 0。
解决这个问题的最好方法是放入 case 语句吗?提前致谢!
;WITH dates ( "Date" ) AS (
SELECT CONVERT( DATE, '2015-03-25' )
UNION ALL
SELECT DATEADD( DAY, 1, Date )
FROM dates
WHERE DATEADD( DAY, 1, Date ) < '2015-03-28'
)
SELECT d.Date
, COUNT(date) as "NumIssues"
FROM dates AS d
LEFT JOIN Issues AS i
ON i.date = d.Date
GROUP BY d.date
ORDER BY d.date;