sql >> Databasteknik >  >> RDS >> Mysql

MySQL VÄLJ MIN för all tid, men återvänd bara om MELLAN datum

Om vi ​​gör ett minimum av alla transaktioner per kund, kontrollera sedan om det är i rätt period vi får något i stil med...

Detta ger dig helt enkelt en ja/nej-flagga om kundens första köp var inom perioden...

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

(detta är i T-SQL, men bör förhoppningsvis ge en uppfattning om hur detta kan uppnås på liknande sätt i mySQL)

Simon




  1. Utför beräkning i MySQL-standardvärde

  2. Hur man gör en inkrementell säkerhetskopiering i Mysql

  3. Använder XAMPP och Mysql Workbench tillsammans

  4. Regex - hitta specifikt nummer i strängen