Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SELECT-Abfrage mit mehreren Unterabfragen für Zählungen

Hier ist eine Möglichkeit, dies ohne alle Unterabfragen zu tun

SELECT  Count(r.id) AS cnt_total,
        sum(case when r.action = 'notnow' then 1 else 0 end) as 'cnt_notnow',
        sum(case when r.action = 'insert' then 1 else 0 end) as 'cnt_insert',
        sum(case when r.action = 'update' then 1 else 0 end) as 'cnt_update',
        sum(case when r.action = 'verify' then 1 else 0 end) as 'cnt_verify'        
FROM    auto_reminders_members r

WHERE  r.reminder_id = 1
       AND CONVERT(DATE, r.date_last_reminder) = '20130328'

Ich habe auch die Abfrage ein wenig aufgeräumt, die Gruppe nach entfernt, da dies immer 1 sein wird, und den Datumsvergleich geändert, um die Verwendung der chaotischen Zwischenlogik zu vermeiden (Danke Aaron für den Kommentar)