Luc

Csőhalmadár!

Teljes hónap lekérdezése

Ha egy táblából szeretnénk egy teljes hónap eseményeit megszerezni, de úgy, hogy az eseménytelen napok is kerüljenek kilistázásra, arra itt egy módszer:
with nums (i) as ( select i = 0 union all select i + 1 from nums where i < 100 )
    select a.dte, COUNT (d.[Date])
    from
        (select dte = dateadd(dd,nums.i,@StartDate) from nums) a
    left  join
        [valamilyentabla] d
    on
        DATEADD(DAY, 0, DATEDIFF(DAY, 0, d.[Date])) = DATEADD(DAY, 0, DATEDIFF(DAY, 0, a.dte))
    where a.dte <= @EndDate
    group by a.dte
    order by a.dte
Természetesen ez nem csak egyetlen hónapra alkalmas, illetve nem csak napokra, hanem akár órákra, vagy hónapokra is lehet bontani a kívánt időszakot. A JOIN feltételben ekkor nem DAY intervallumot kell használni, hanem azt, ami éppen tetszik, YEAR, MINUTE, akármi.
A megoldás ötletét innen vettem: http://www.sqlteam.com/

Megjegyzés Hozzáfűzése

Loading