我需要运行一个报告,给出每月特定createria的记录计数。对于每个月,我的查询不止一次显示月份。可能是我做错了什么:我的剧本:
Select DATEPART(mm,DatePrinted),COUNT(ReceiptNo)As CardPrinted
from mytble where ReceiptNo like'990%'
Group by DatePrinted
可能的收据:800,75 我期待的是:
1月份总计数
2月总数等。
答案 0 :(得分:3)
使用Group by DATEPART(month,DatePrinted)
。
Select DATEPART(month,DatePrinted) As MyMonth, COUNT(ReceiptNo) As CardPrinted
From mytble
Where ReceiptNo like '990%'
Group by DATEPART(month,DatePrinted)
如果您需要月份名称,请使用DATENAME()
功能:
Select DATENAME(month,DatePrinted) As MyMonth, COUNT(ReceiptNo) As CardPrinted
From mytble
Where ReceiptNo like '990%'
Group by DATENAME(month,DatePrinted)
注意:您可能需要按年分组才能获得正确的结果。否则,无论年份如何,您都将获得类似月份的计数。如果您要查找特定年份,请将此过滤条件添加到WHERE
条款Year(DatePrinted) = yourYear
答案 1 :(得分:3)
您的分组声明错误,必须在DATEPART(mm,DatePrinted)
SELECT DATEPART(mm, DatePrinted) AS [Month], COUNT(ReceiptNo) As CardPrinted
FROM mytble
WHERE ReceiptNo LIKE '990%'
GROUP BY DATEPART(mm, DatePrinted)
您也可以COUNT(ReceiptNo)
替换COUNT(*)
。
另请注意,就像现在一样,不同年份的所有月份将组合在一起。
如果这不是您想要的行为,您可以SELECT
和GROUP BY DATEPART(yyyy, DatePrinted), DATEPART(mm, DatePrinted)