Home Forums SQL Server 2008 SQL Server Newbies Dyn SQL - Need results to show when count is 0 group by datetime RE: Dyn SQL - Need results to show when count is 0 group by datetime

  • Sorry, didn't see the join in there so provided a part solution.

    Try this instead: -

    --== START OF SOLUTION ==--

    DECLARE @WEEKS INT;

    SET @WEEKS = 12;

    WITH CTE(N) AS (SELECT 1 FROM (VALUES(1),(1),(1),(1),(1),(1),(1),(1),(1),(1))a(N)),

    CTE1(N) AS (SELECT 1 FROM CTE a CROSS JOIN CTE b),

    CTE2(N) AS (SELECT 1 FROM CTE1 a CROSS JOIN CTE1 b),

    CTE3(N) AS (SELECT 1 FROM CTE2 a CROSS JOIN CTE2 b),

    CTE4(N) AS (SELECT 1 FROM CTE3 a CROSS JOIN CTE3 b),

    CTE5(N) AS (SELECT 0 UNION ALL

    SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL))

    FROM (SELECT TOP (@WEEKS-1) N

    FROM CTE4)a

    ),

    TALLY(N, X) AS (SELECT DATEADD(dd, 7*-N, DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), -1)),

    DATEADD(dd, 7*-(N+1), DATEADD(wk, DATEDIFF(wk, 0, GETDATE()), -1))

    FROM CTE5)

    SELECT a.N AS DateRange, d.Total

    FROM TALLY a

    OUTER APPLY (SELECT COUNT(1)

    FROM #WebTV_Promo_Customer b

    INNER JOIN #WebTV_Promo_Codes c ON b.ID_CODE = c.ID

    WHERE c.ACTIVE = 0 AND c.ID_CAT <> 2

    AND DELIVERY_DATE BETWEEN a.X AND a.N) d(Total);

    I modified that on the way to my car using my phone, so check the syntax before executing. I'll check for replies either tonight when I get home or tomorrow morning.


    Forever trying to learn
    My blog - http://www.cadavre.co.uk/
    For better, quicker answers on T-SQL questions, click on the following...http://www.sqlservercentral.com/articles/Best+Practices/61537/
    For better, quicker answers on SQL Server performance related questions, click on the following...http://www.sqlservercentral.com/articles/SQLServerCentral/66909/