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/01/2011
dst ...
01/02/2011
02/02/2011
dst ....
01/12/2011
02/12/2011
....
31/12/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,,,,!!!!!!!!!!!!!!!!!
Thank's Mas Query nya. Sungguh sangat bermanfaat ...
BalasHapus