Mysql
 sql >> Database >  >> RDS >> Mysql

Restituisce solo le righe il cui valore massimo è inferiore a quello specificato

Vuoi estrarre la condizione dal join in un having clausola. Il join è solo guardando i record prima di quelle date, quindi non sai se succede qualcosa in seguito.

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