Ist es möglich, per Join nach Spalten zu gruppieren?
P粉702946921
P粉702946921 2023-09-09 09:35:39
0
1
538

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

lauten

Wie 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;

P粉702946921
P粉702946921

Antworte allen(1)
P粉019353247

不需要多次连接,使用SUM。

尝试

select tc.UIDPK,
       COUNT(torder.status) as total,
       SUM(torder.status = 'IN_PROGRESS') as inprogress,
       COUNT(torder.status) - SUM(torder.status = 'IN_PROGRESS') as remaining
from TCUSTOMER tc
inner join TORDER torder on tc.UIDPK=torder.CUSTOMER_UID
where tc.UIDPK=490000
group by tc.UIDPK;
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!