sql >> Database >  >> RDS >> Mysql

MySQL SELECT MIN voor altijd, maar keer alleen terug als TUSSEN datums

Als we minimaal alle transacties per klant doen, controleer dan of dat in de juiste periode is, we krijgen iets in de trant van...

Dit geeft u eenvoudig een ja/nee-vlag of de eerste aankoop van de klant binnen de periode was...

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

(dit is in T-SQL, maar zou hopelijk een idee moeten geven van hoe dit op dezelfde manier kan worden bereikt in mySQL)

Simon




  1. Wat is de juiste standaardwaarde voor een MySQL-decimaalveld?

  2. SQL SELECT om de eerste N positieve gehele getallen te krijgen

  3. Plugin '0' is niet geladen

  4. chmod mislukt:EPERM (bewerking niet toegestaan) in Android?