Merhabalar arkadaşlar,
Bir projemde kullanmak zorunda kaldığım fakat uzun uğraşlar sonucu ulaştığım bir veriyi sizinle paylaşıyorm. Aşağıda vereceğim kodlar her aylık listeleme de, her ayın son verisini, 3 aylık listelemede her 3 ayın son verisini, senelik listelemede ise her senenin son verisini yani 31 aralık verisini bizlere vermektedir. Kodlar arasında düzenlemeler yaparak gerekli diğer verilere ulaşmak mümkün.
Aylık veri listelemek için,
1 2 3 4 5 6 7 8 9 10 11 |
select tarih, MAX(kur) from tbl where tarih in ( select EOMONTH(tarih) as ay from tbl where tarih >= @baslangic and tarih <= @bitis group by EOMONTH(tarih) ) group by tarih order by tarih |
3 Aylık veri listelemek için,
1 2 3 4 5 6 7 8 9 10 11 |
select tarih, MAX(kur) from tbl where tarih in ( select CONVERT(DATE,DATEADD(d, -1, DATEADD(q, DATEDIFF(q, 0, tarih) +1, 0))) as ceyrek from tbl where tarih >= @baslangic and tarih <= @bitis group by CONVERT(DATE,DATEADD(d, -1, DATEADD(q, DATEDIFF(q, 0, tarih) +1, 0))) ) group by tarih order by tarih |
Yıllık veri listelemek için,
1 2 3 4 5 6 7 8 9 10 11 |
select tarih, MAX(kur) from tbl where tarih in ( select DATEADD(yy, DATEDIFF(yy,0,tarih) + 1, -1) as yil from tbl where tarih >= @baslangic and tarih <= @bitis group by DATEADD(yy, DATEDIFF(yy,0,tarih) + 1, -1) ) group by tarih order by tarih |
kod bloglarını kullanabilirsiniz. “baslangic” ve “bitis” degerleri DateTime türünde iki tarih değişkenidir. Hangi tarih aralığında olmasını istiyorsak ona göre düzenliyoruz.
Eğer konu ile ilgili yardım gerekirse yorumda belirtebilirsiniz.
Projelerimde kullanacağım çok faydalı kodlar eyvallah 🙂