select tc.UIDPK, count(torder.status) as total from TCUSTOMER tc inner join TORDER torder on tc.UIDPK=torder.CUSTOMER_UID where tc.UIDPK=490000;
Die obige Abfrage funktioniert bei mir einwandfrei. Der Status kann jedoch IN_PROGRESS, FAILED, ON_HOLD
lautenWie schreibe ich eine Abfrage, die eine Statusanzahl zurückgibt? wie tc.UIDPK, Gesamtbestellungen, IN_PROGRESS-Bestellungen, Gesamtbestellungen-IN_PROGRESS-Bestellungen. Ich habe Folgendes versucht, aber es hat nicht funktioniert
select tc.UIDPK, count(torder.status) as total, count(torder2.status) as inprogress, count(torder.status)-count(torder2.status) as remaining from TCUSTOMER tc inner join TORDER torder on tc.UIDPK=torder.CUSTOMER_UID left join TORDER torder2 on tc.UIDPK=torder2.CUSTOMER_UID and torder2.status in('IN_PROGRESS') where tc.UIDPK=490000;
不需要多次连接,使用SUM。
尝试