2

月ごとに特定の createria を持つレコードの数を示すレポートを実行する必要があります。月ごとに、クエリでその月が複数回表示されます。何か間違ったことをしている可能性があります:私のスクリプト:

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

可能なレシート:800,75。
次のようなものが期待されます:

1月の合計数

2月の合計数など

4

2 に答える 2

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

于 2013-11-14T14:57:48.653 に答える
3

Your group by statement is wrong, it must be on DATEPART(mm,DatePrinted)

SELECT DATEPART(mm, DatePrinted) AS [Month], COUNT(ReceiptNo) As CardPrinted
FROM mytble 
WHERE ReceiptNo LIKE '990%'
GROUP BY DATEPART(mm, DatePrinted)

You can also replace COUNT(ReceiptNo) by COUNT(*).

Also note that as it is right now, all months of different years will be grouped together.

If that isin't the desired behaviour you can SELECT and GROUP BY DATEPART(yyyy, DatePrinted), DATEPART(mm, DatePrinted)

于 2013-11-14T14:58:26.640 に答える