Искате да изтеглите условието от присъединяването в having
клауза. Присъединяването е само гледате записи преди тези дати, така че да не знаете дали нещо се случва след това.
SELECT *
FROM tbldealermobiles
INNER JOIN tblhistory ON tbldealermobiles.FCS = tblhistory.FCS
INNER JOIN tblAllDealers ON tbldealermobiles.FCS = tblAllDealers.FCS
WHERE tblAllDealers.CustGroup in ('Virtual', 'Outbound')
GROUP BY tbldealermobiles.mobilenumber
HAVING MAX(tblhistory.PurchaseDate) <
MAX(case when tblAllDealers.CustGroup = 'Virtual' then date('2013-03-22')
when tblAllDealers.CustGroup = 'Outbound' then date('2013-04-21')
end)
ORDER BY tblhistory.PurchaseDate DESC