The following script below I am creating so that it will return all Employee's of the filtered manager from table 'dbEmployee.Summary.tblEmployeeSnapshot' rather or not they have a record on table 'DetailPBS.tblEmployeeBidPeriodhist' or not.  I am currently using LEFT JOINs to acheive this, but the problem I'm having is that when I set my filters up in the WHERE clause.  It turns into a INNER JOIN and I lose my NULL columns.  How can I get around this, so that I can filter on the tables needed?DECLARE @ManagerID varchar(20)DECLARE @Today DATESET  @ManagerID = '323031'Set @Today = (Select DATEADD(Day,DATEDIFF(Year, -2, getDate()),0))SELECT   snp.Employeeid       ,b.BidID      ,bg.BidgroupName + ' - ' + CONVERT(VARCHAR,b.BidStartdate,101 ) AS 'Bidgroup'	  ,max(BidStartdate) BidStartDate	  ,MAX(bg.BidgroupName) BidGroupNameFROM dbEmployee.Summary.tblEmployeeSnapshot snpLEFT JOIN dbMyInfo.DetailPBS.tblEmployeeBidPeriodhist hist       ON hist.EmployeeID = snp.Employeeid       LEFT JOIN ConfigPBS.tblbids              b        ON b.BidID = hist.Bidid           LEFT JOIN ConfigPBS.tblBidGrouping       bg  		 ON b.Bidgroupid = bg.BidGroupid   		 LEFT JOIN ConfigPBS.tblBidGroupLocationMapping bgl		 ON bg.BidGroupid = bgl.BidGroupid		 LEFT JOIN ConfigPBS.tblFunctionalGroupMapping fg		 ON bg.FunctionalGroupid = fg.FunctionalGroupid          	  		   		 WHERE /*b.isactive = 1       --- How can I filter on these field without it creating a INNER JOIN        AND fg.IsActive = 1                 		and b.BidLockout >= @Today*/			 (BottomUp01ID = @ManagerID			or BottomUp02ID = @ManagerID			or BottomUp03ID = @ManagerID			or BottomUp04ID = @ManagerID			or BottomUp05ID = @ManagerID)						Group BY        snp.Employeeid,		b.BidID,		bg.BidgroupName + ' - ' + CONVERT(VARCHAR,b.BidStartdate,101 ) 		ORDER BY max(BidStartdate), MAX(bg.BidgroupName)