DECLARE @Months TABLE (Mnt tinyint) INSERT INTO @Months VALUES (1) INSERT INTO @Months VALUES (2) INSERT INTO @Months VALUES (3) INSERT INTO @Months VALUES (4) INSERT INTO @Months VALUES (5) INSERT INTO @Months VALUES (6) INSERT INTO @Months VALUES (7) INSERT INTO @Months VALUES (8) INSERT INTO @Months VALUES (9) INSERT INTO @Months VALUES (10) INSERT INTO @Months VALUES (11) INSERT INTO @Months VALUES (12) /*Preparing example data */ DECLARE @Salesperson TABLE (owner_id varchar(20), sale_date datetime, id int IDENTITY(1,1)) INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140102') --1 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140102') --2 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140204') --3 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140204') --4 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140306') --5 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140306') --6 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Peter', '20140408') --7 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140102') --8 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140102') --9 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140202') --10 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140202') --11 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140302') --12 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140402') --13 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Paul', '20140402') --14 INSERT INTO @Salesperson (owner_id, sale_date) VALUES ('Mary', '20140601') --15 DECLARE @Sales TABLE (opp_id int, amtfinanced numeric(14,2)) INSERT INTO @Sales VALUES(1, 2000.00) INSERT INTO @Sales VALUES(2, 12000.00) INSERT INTO @Sales VALUES(3, 12000.00) INSERT INTO @Sales VALUES(4, 13000.00) INSERT INTO @Sales VALUES(5, 14000.00) INSERT INTO @Sales VALUES(6, 15000.00) INSERT INTO @Sales VALUES(7, 16000.00) INSERT INTO @Sales VALUES(8, 12000.00) INSERT INTO @Sales VALUES(9, 13000.00) INSERT INTO @Sales VALUES(10, 14000.00) INSERT INTO @Sales VALUES(11, 15000.00) INSERT INTO @Sales VALUES(12, 16000.00) INSERT INTO @Sales VALUES(13, 17000.00) INSERT INTO @Sales VALUES(14, 18000.00) INSERT INTO @Sales VALUES(15, 1000000.00) INSERT INTO @Sales VALUES(17, 2000000.00) ---?????? /*End preparing example data */ SELECT Prs.owner_id, Prs.Mnt, COALESCE(Tbl1.Sum, 0) AS Sumofmonthsales FROM (SELECT DISTINCT Salesperson.owner_id, Mnt.Mnt FROM @Salesperson Salesperson CROSS JOIN @Months Mnt) Prs LEFT JOIN (SELECT Salesperson.owner_id, MONTH(Salesperson.Sale_Date) AS Mnt, SUM(Sales.amtfinanced) AS Sum FROM @Sales Sales INNER JOIN @Salesperson Salesperson ON Sales.opp_id = Salesperson.Id WHERE YEAR(Salesperson.Sale_Date) = 2014 GROUP BY Salesperson.owner_id, MONTH(Salesperson.Sale_Date)) Tbl1 ON Prs.owner_id = Tbl1.owner_id AND Prs.Mnt = Tbl1.Mnt ORDER BY Prs.owner_id, Prs.Mnt