thats because you're doing inner join. so unless it has a matching record in b it wont be returned. use modified query below if you want all records from a regardless of match in bSelect '""', a.CANDa, a.PWQ, a.PWA, a.DaysAccd, b.DaysPaid From (Select Distinct CANDIDATE.Candidate_Code as Canda, Count(WTR_Id)as PWQ, Count(WTR_Id) as PWA, Sum(Holiday_Days) as DaysAccdFrom PAYE_WTR Inner Join PAYE on PAYE_WTR.Paye_Id = PAYE.Paye_IdInner Join PERSON on PAYE.Person_Id = Person.Person_IdInner Join CANDIDATE on PERSON.Person_Id = CANDIDATE.Person_IdWhere PAYE_WTR.Reference_Year=2011 and CANDIDATE.Active_YN = 'Y'Group By CANDIDATE.Candidate_Code) aleft join(Select Distinct CANDIDATE.Candidate_Code as Candb, Sum(Item_Quantity) as DaysPaidFrom PAYSLIP Inner Join PAYSLIP_ITEM on PAYSLIP.Payslip_Id = Payslip_Item.Payslip_IdInner Join PAYE ON PAYSLIP.PAYE_Id = PAYE.PAYE_Id Inner Join PERSON ON PAYE.Person_Id = PERSON.Person_IdInner Join CANDIDATE ON PERSON.Person_Id = CANDIDATE.Person_Id Where Item_Description like '%Holiday Pay%' and PAYSLIP_ITEM.Code_Id=3and PAYSLIP_ITEM.Reference_Year=2011 and CANDIDATE.Active_YN = 'Y'Group By CANDIDATE.Candidate_Code) bon a.CANDa = b.CANDb
------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/