• Or you could use a table with all possible values.

    Here's an example on how to create it.

    CREATE TABLE Weeks(

    WeekCode int,

    FisrtDay date,

    LastDay date

    );

    WITH

    E(n) AS(

    SELECT n FROM (VALUES(0),(0),(0),(0),(0),(0),(0),(0),(0),(0))E(n)

    ),

    E2(n) AS(

    SELECT a.n FROM E a, E b

    ),

    E4(n) AS(

    SELECT a.n FROM E2 a, E2 b

    ),

    cteTally(n) AS(

    SELECT TOP 3000 DATEADD( wk, ROW_NUMBER() OVER(ORDER BY (SELECT NULL))-1, '19950102') n

    FROM E4

    )

    INSERT INTO Weeks

    SELECT (YEAR(n) * 100) + DATEPART(ISOWK, n) WeekCode,

    n AS firstday,

    n + 7 AS lastday

    FROM cteTally;

    Luis C.
    General Disclaimer:
    Are you seriously taking the advice and code from someone from the internet without testing it? Do you at least understand it? Or can it easily kill your server?

    How to post data/code on a forum to get the best help: Option 1 / Option 2