Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Nur Zeilen zurückgeben, deren Maximalwert kleiner als angegeben ist

Sie möchten die Bedingung aus dem Join in ein having ziehen Klausel. Der Join ist nur Betrachten Sie Aufzeichnungen vor diesen Daten, sodass Sie nicht wissen, ob danach etwas passiert.

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