Co roku mamy 12 miesięcy. Powinienem napisać zapytanie, które wybiera się w jednej tabeli na każdy miesiąc. Na przykład powinienem sporządzić raport, który pokazuje mi co miesiąc liczbę transakcji.Pętla przez miesiąc w SQL Server
Zrobiłem to, ale w niewłaściwy sposób.
Napisałem 12 zapytań dla każdego miesiąca.
Jak to:
SET @MONTH12M = (SELECT SUM(Amount) AS TOT
FROM [fidilio].[dbo].[CardTransactionLog] CL
JOIN CardTransaction CT ON CT.CardTransactionLogId = CL.CardTransactionLogId
WHERE (cl.TransactionPersianTimeStamp > N'1393/12/01'
AND cl.TransactionPersianTimeStamp< N'1393/12/31')
)
INSERT INTO #TEMP(MonthValue, CountValue, TypeValue)
SELECT
12,
CASE WHEN @MONTH12M IS NULL THEN 0 ELSE @MONTH12M END,4
Mam 11 more zapytanie takiego.
Wreszcie pobieram mój wynik, wstawiam do tabeli temp.
Jak mogę to zrobić dynamicznie?
Jak mogę to zrobić za pomocą pętli?
Dziękuję. ale jeśli widzę moje zapytanie, mam sumę, nie mogę pogrupować jej według miesiąca – salar
Oczywiście, że możesz! Jeśli pominiesz 'group by', domyślnie będzie to cały zestaw w jednej grupie. Możesz "pogrupować" według dowolnego zestawu kolumn i użyć funkcji agregujących, takich jak "suma" do generowania statystyk dla grupy. – Andomar
Dziękuję bardzo, więc nie potrzebuję żadnej pętli? – salar