Was ich versuche zu tun, ist ein Bündel von Daten aus einer Tabelle (Passbooking) in 4 Spalten zusammenfassen. Die erste ist einfach eine Client-ID, und die nächsten drei sind eine Anzahl von Buchungen, die bestimmte Kriterien für jede Client-ID erfüllen.Joining 3 Tabellen von count abgeleitet und gruppieren von Anweisungen
Die dritte (OnDemandCancels) und vierte (DayCenterCancels) sind Teilmengen der zweiten (TotalCancels), und daher einige der Zeilen in der dritten und vierten Spalte sollte Null sein.
Aus diesem Grund denke ich, ich muss die Clientid für jede der Spalten enthalten, wenn sie von der ursprünglichen Tabelle abgeleitet sind, so dass ich sie entlang Clientid verbinden kann.
Hier ist so nah wie ich in der Lage gewesen zu bekommen:
select
pb.clientid,
(select pb.clientid, count(pb.ldate) as TotalCancels
from passbooking as pb
where pb.ldate >= 20170201
and pb.ldate <= 20170228
and (pb.schedulestatus = 430 or pb.schedulestatus = 420)
group by pb.clientid) as tcxl,
(select pb.clientid, count(pb.ldate) as OnDemandCancels
from passbooking as pb
where pb.ldate >= 20170201
and pb.ldate <= 20170228
and (pb.schedulestatus = 430 or pb.schedulestatus = 420)
and pb.bookingpurpose <> 'P-DayCt')
group by pb.clientid) as odcxl,
(select pb.clientid, count(pb.ldate) as DayCenterCancels
from passbooking as pb
where pb.ldate >= 20170201
and pb.ldate <= 20170228
and (pb.schedulestatus = 430 or pb.schedulestatus = 420)
and pb.bookingpurpose = 'P-DayCt')
group by pb.clientid) as dccxl
from passbooking as pb
where pb.clientid = tcxl.clientid
and pb.clientid = odcxl.clientid
and pb.clientid = dccxl.clientid
Das gibt mir eine Fehlermeldung „Der mehrteilige Bezeichner tcxl.clientid nicht gebunden werden kann“.
Ich weiß, dass jede der Unterabfragen so funktioniert, wie ich sie auf eigene Faust will, mein Problem ist nur herauszufinden, wie man sie richtig verbindet.
Danke!
Welche Datenbank-Software verwenden Sie? MySQL, Postgres? – Ben