Selasa, 26 Juni 2012

[SQL Server Query] Select all day list of month/year ( Menampilkan semua daftar hari dalam sebulan atau setahun)

Ada temen yg bertanya bagaimana menampilkan semua daftar hari dalam setahun,,,
seperti dibawah ini:
01/01/2011
02/01/2011
dst ...
01/02/2011
02/02/2011 
dst ....
01/12/2011
02/12/2011
....
31/12/2011

caranya dengan menggabungkan fungsi "dateadd" dan fungsi "union" untuk menggabungkan nilai "i" ,,,, untuk lebih jelasnya cek query berikut :

select HASIL from
(select HASIL = dateadd(day,i,'2011/01/01') from
(select i = i1.i + i2.i + i3.i + i4.i + i5.i + i6.i + i7.i+ i8.i + i9.i 
from
(select i = 0 union select 1) as i1 ,
(select i = 0 union select 2) as i2 ,
(select i = 0 union select 4) as i3 ,
(select i = 0 union select 8) as i4 ,
(select i = 0 union select 16) as i5 ,
(select i = 0 union select 32) as i6 ,
(select i = 0 union select 64) as i7 ,
(select i = 0 union select 128) as i8 ,
(select i = 0 union select 256) as i9 
) as joinI
) tampung
where HASIL < '2012/01/01'
order by HASIL
/*
Karena 1 tahun= 365 hari, maka kelipatan nya cukup sampai 256 yg berarti batas akhir record sampai 512,, Misal kita mau select hari dalam jangka 2 tahun yg berarti =730 hari, maka kelipatannya kita tambahin menjadi 514 ,biar record yg bisa dihasilkan sampai 1024 record,,,  
*/

PREVIEW :
SEMOGA BERMANFAAT,,,,!!!!!!!!!!!!!!!!!

1 komentar:

  1. Thank's Mas Query nya. Sungguh sangat bermanfaat ...

    BalasHapus