SQL Server’da Haftalık Para Toplamının Bulunması
Herkese merhaba,
Bu yazıda SQL Server’da haftalık para toplamının bulunması ile ilgili bilgi vermeye çalışacağım.
SQL Server’da bazı durumlarda raporlama yaparken haftalık olarak gelen ödemeleri ya da yapılan ödemeleri görmek isteyebilirsiniz ya da farklı bir şekilde böyle bir raporlamaya ihtiyaç duyabilirsiniz.
Sorunun çıkış noktası facebook ortamında bir arkadaşın aşağıdaki soruyu sormasıdır.
Yukarıdaki değerlerden yola çıkarak bir tablo oluşturacağım ve sonrasında bu tablo üzerinde ilgili raporlamayı yapacağım.
İlk olarak dil ayarınız Türkçe değilse SQL Server dil ayarını Türkçe yapalım ve ay formatını dmy’ye çevirelim.
SET LANGUAGE Turkish
SET DATEFORMAT dmy;
Aşağıdaki kodları kullanarak siz de bu işlemi deneyebilirsiniz.
SELECT AnaTablo.AyAdi,
AnaTablo.Haftalar,
AnaTablo.Tutar
FROM
(
SELECT FORMAT(Tarih, 'MMMM') AS AyAdi,
DATEPART(m, Tarih) AS HaftaNo,
CAST(DATEPART(WEEK, Tarih) - DATEPART(WEEK, DATEADD(MM, DATEDIFF(MM, 0, Tarih), 0)) + 1 AS NVARCHAR(100))
+ '.Hafta' AS Haftalar,
SUM(Tutar) AS Tutar
FROM TutarTablosu
GROUP BY CAST(DATEPART(WEEK, Tarih) - DATEPART(WEEK, DATEADD(MM, DATEDIFF(MM, 0, Tarih), 0)) + 1 AS NVARCHAR(100))
+ '.Hafta',
FORMAT(Tarih, 'MMMM'),
DATEPART(m, Tarih)
) AS AnaTablo
ORDER BY AnaTablo.HaftaNo ASC;
Yukarıdaki kodu çalıştırdığınızda aşağıdakine benzer bir sonuç göreceksiniz.
Görüldüğü üzere ay adı, ayın hangi haftası olduğu ve paranın toplam tutarı haftalık olarak hesaplanmıştır
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.