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

MySQL SELECT MIN przez cały czas, ale zwracaj tylko jeśli BETWEEN datek

Jeśli wykonamy minimum wszystkich transakcji według klienta, sprawdź, czy jest to właściwy okres, otrzymujemy coś podobnego do...

To po prostu da ci flagę tak/nie, czy pierwszy zakup klienta miał miejsce w okresie...

SELECT CASE COUNT(*) WHEN 0 THEN 'Yes' ELSE 'No' END As [WasFirstTransInThisPeriod?]
FROM (  
        SELECT bb_member.member_id As [member_id], MIN(bb_transactions.trans_tran_date) AS temp_first_time 
        FROM bb_business      
        RIGHT JOIN bb_transactions ON bb_transactions.trans_store_id = bb_business.store_id 
        LEFT JOIN bb_member ON bb_member.member_id = bb_transactions.trans_member_id 
        WHERE bb_business.id = '5651' 
        GROUP BY bb_member.member_id
    ) T
WHERE T.temp_first_time BETWEEN '2010-08-01' AND '2010-09-13'
ORDER BY T.member_id DESC

(jest to w T-SQL, ale miejmy nadzieję, że powinno dać wyobrażenie o tym, jak można to osiągnąć podobnie w mySQL)

Szymon




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego kolumna tekstowa nie może mieć wartości domyślnej w MySQL?

  2. Jak wstawić zbiorczą bazę danych w Yii2?

  3. mysql TIME_WAIT; problem ze zbyt wieloma połączeniami

  4. Jak umieścić klauzulę „if” w ciągu SQL?

  5. Jak pozostawić dołączyć wiele stołów od jednego do wielu w mysql?