Home Forums SQL Server 2008 T-SQL (SS2K8) wish to add rows having NULL values as placeholders for "missing" dates RE: wish to add rows having NULL values as placeholders for "missing" dates

  • Use LEFT OUTER JOIN, but don't cast datetimes in any data table to dates to do comparisons; instead, use a range check.

    Here's a sample join for the tables you've described:

    SELECT ...

    FROM dbo._dates d

    INNER JOIN (

    SELECT

    DATEADD(DAY, DATEDIFF(DAY, 0, MIN(starttime)), 0) AS start_date,

    DATEADD(DAY, DATEDIFF(DAY, 0, MAX(starttime)) + 1, 0) AS end_date

    FROM dbo.cannedbackupjobs

    ) AS date_range ON

    d.date >= date_range.start_date AND

    d.date < date_range.end_date

    LEFT OUTER JOIN cannedbackupjobs dbj ON

    dbj.starttime >= d.date AND

    dbj.starttime < DATEADD(DAY, 1, d.date)

    --use the WHERE below instead of the INNER JOIN above if you want to

    --report on just a specific date range that you specify

    --WHERE d.date >= @start_date AND d.date < @end_date

    SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.