Mysql
 sql >> Base de données >  >> RDS >> Mysql

Renvoie uniquement les lignes dont la valeur maximale est inférieure à celle spécifiée

Vous souhaitez extraire la condition de la jointure dans un having clause. La jointure est seulement regarder les enregistrements avant ces dates, de sorte que vous ne savez pas si quelque chose se passe après.

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