SELECT c.FirstName, c.LastName, a.AddressName, co.Description, p.Amount, p.Received, COUNT(con.contributionid) AS 'Count', p.Interval, p.StartDate, p.EndDate
FROM tblPledges p
LEFT JOIN tblAddresses a ON p.AddressID = a.AddressID
LEFT JOIN tblContacts c ON p.ContactID = c.ContactID
INNER JOIN tblCodes co ON p.Fund = co.CodeID
INNER JOIN tblContributions con ON p.Fund = con.DesignatedFund AND (p.ContactID = con.ContactID OR p.AddressID = con.AddressID)
GROUP BY c.FirstName, c.LastName, a.AddressName, co.Description, p.Amount, p.Received, p.Interval, p.StartDate, p.EndDate