Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zwróć tylko wiersze, których maksymalna wartość jest mniejsza niż określona

Chcesz ściągnąć warunek z połączenia do having klauzula. Połączenie jest tylko patrząc na zapisy przed tymi datami, więc nie wiesz, czy coś się wydarzy później.

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zablokować wiersz InnoDB, który jeszcze nie istnieje?

  2. wstaw wartość formularza wyboru html do bazy danych mysql

  3. Prosty przykład relacji wiele-do-wielu przy użyciu Sequelize

  4. Koszyk i zarządzanie zapasami

  5. 'PDOException' Błąd składni lub naruszenie dostępu:1064 Wystąpił błąd w składni SQL; sprawdzać