选择日期范围SQL中的记录计数

时间:2016-11-29 17:26:38

标签: sql tsql dynamic-sql

我希望从提供的每一天的表格中选择评论数量。例如,我想查看2016年11月20日至2016年11月19日期间每天的评论数量。

我已经探讨了这个想法一段时间了,这只是我写的一天的基本代码,但我希望在日期范围内动态执行此操作。

DECLARE @Date VARCHAR(250)
SET @Date = '2016-11-23'

SELECT      
    COUNT(*),
    @Date
FROM CRA_METRO2_REJECT_COMMENTS RC
WHERE 
    CONVERT(DATE, RC.comment_date) IN (CONVERT(DATE, @Date))

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

你应该尝试一种更简单的方法:

SELECT RC.comment_date, COUNT(*)
FROM CRA_METRO2_REJECT_COMMENTS RC
GROUP BY RC.comment_date
ORDER BY RC.comment_date

这适用于您的comment_date使用的任何格式。

答案 1 :(得分:1)

有了BWS的帮助,这是我的解决方案。

DECLARE @StartDate VARCHAR(250)
DECLARE @EndDate VARCHAR(250)
SET @StartDate = '2016-11-23'
SET @EndDate = '2016-11-29'

SELECT 
    CONVERT(DATE, RC.comment_date),
    COUNT(*)
FROM CRA_METRO2_REJECT_COMMENTS RC
WHERE CONVERT(DATE, RC.comment_date) BETWEEN CONVERT(DATE, @StartDate) AND CONVERT(DATE, @EndDate)
GROUP BY CONVERT(DATE, RC.comment_date)
ORDER BY CONVERT(DATE, RC.comment_date)