2013-11-14 70 views
2

我需要運行一個報告,指出特定創意每月的記錄數。對於每個月我的查詢不止一次顯示該月。難道是我做錯了什麼:我的腳本:我的SqlCode中的邏輯錯誤

Select DATEPART(mm,DatePrinted),COUNT(ReceiptNo)As CardPrinted 
from mytble where ReceiptNo like'990%' 
Group by DatePrinted  

posits receipt:800,75。
上午預計類似:

月TOTALCOUNT

二月TOTALCOUNT等

+1

您怎麼弄? – Ashalynd

+0

您想將2012年1月和2013年1月分組在一起或分開嗎? –

回答

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

3

你GROUP BY說法是錯誤的,它必須是在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(*)代替COUNT(ReceiptNo)

另請注意,現在,不同年份的所有月份將被組合在一起。

如果isin't所期望的行爲,你可以SELECTGROUP BY DATEPART(yyyy, DatePrinted), DATEPART(mm, DatePrinted)