It's more than just 10 isn't it..USE NorthwindGOSET NOCOUNT ONCREATE TABLE numbers(n int)CREATE TABLE Years(y int)CREATE TABLE Customer(c char(1))GOINSERT INTO numbers(n) SELECT 1 UNION ALLSELECT 2 UNION ALLSELECT 3 UNION ALLSELECT 4 UNION ALLSELECT 5 UNION ALLSELECT 6 UNION ALLSELECT 7 UNION ALLSELECT 8 UNION ALLSELECT 9 UNION ALLSELECT 10 UNION ALLSELECT 11 UNION ALLSELECT 12INSERT INTO years(y) SELECT 2003 UNION ALLSELECT 2004INSERT INTO Customer(c)SELECT 'X'GOCREATE TABLE myTable99(CustomerID char(1), [Month] int, [Year] int)GOINSERT INTO myTable99(CustomerID, [Month], [Year])SELECT 'X', 5, 2003 UNION ALLSELECT 'X', 6, 2003 UNION ALLSELECT 'X', 7, 2003 UNION ALLSELECT 'X', 8, 2003 UNION ALLSELECT 'X', 9, 2003 UNION ALLSELECT 'X', 11, 2003 UNION ALLSELECT 'X', 12, 2003 UNION ALLSELECT 'X', 1, 2004 UNION ALLSELECT 'X', 2, 2004 UNION ALLSELECT 'X', 3, 2004GO SELECT XXX.c, XXX.n, XXX.y FROM (SELECT * FROM customer CROSS JOIN numbers CROSS JOIN years) AS XXX LEFT JOIN myTable99 t ON t.[Month] = XXX.n AND t.[Year] = XXX.y WHERE t.[Month] IS NULL AND t.[Year] IS NULLGOSET NOCOUNT ONDROP TABLE CustomerDROP TABLE numbersDROP TABLE yearsDROP TABLE myTable99GO
Brett8-)