here's a stab at what I think you're looking for, but you'll need to clarify or provide more informationdeclare @dates table (TransDate smalldatetime)insert into @datesselect '2010-01-01' union allselect '2010-01-02' union allselect '2010-01-03' union allselect '2010-01-04' union allselect '2010-01-05' union allselect '2010-01-06' union allselect '2010-01-07' union allselect '2010-01-08' union allselect '2010-01-09' union allselect '2010-01-10' union allselect '2010-01-11' union allselect '2010-01-12' union allselect '2010-01-13' union allselect '2010-01-14' union allselect '2010-01-15' union allselect '2010-01-16' union allselect '2010-01-17' union allselect '2010-01-18' union allselect '2010-01-19' union allselect '2010-01-20' union allselect '2010-01-21' union allselect '2010-01-22' union allselect '2010-01-23' union allselect '2010-01-24' union allselect '2010-01-25' union allselect '2010-01-26' union allselect '2010-01-27' union allselect '2010-01-28' union allselect '2010-01-29' union allselect '2010-01-30' union allselect '2010-01-31'declare @emp table (EmpID int, EmpName varchar(20))insert into @emp select 1, 'Jim' union allselect 2, 'John' union allselect 3, 'Mike' declare @sales table (EmpID int, TransDate smalldatetime, Sales decimal (8,2))insert into @salesselect 1, '2010-01-10', 100 union allselect 1, '2010-01-14', 200 union allselect 1, '2010-01-15', 300 union allselect 1, '2010-01-22', 400 union allselect 1, '2010-01-28', 500 union allselect 2, '2010-01-01', 1000 union allselect 2, '2010-01-24', 2000 union allselect 3, '2010-01-31', 3000-- not sure if you want all days and employees and only show the sales they had on -- those daysselect d.TransDate, s.Sales, E.EmpIDfrom @dates d cross apply @emp e left outer join @sales s on d.TransDate = s.TransDate AND e.empID = s.EmpID -- or just the dates they worked which is just a straight selectselect TransDate, Sales, EmpIDfrom @sales
For Faster results please follow the posting guidelines herehttp://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx