Ich versuche, linke beitreten in einer Abfrage, aber es scheint, dass ich irgendwo falsch liege.SQL Server links Beitritt
table machines
--------------
machineID
FaNo
Barcode
RoutingCode
Name
table log
-------------
logID
lineBarcode
machineBarcode
In der Protokolltabelle gibt es Aufzeichnungen auf den Maschinen und den Leitungen. Auf einer Linie können viele verschiedene Maschinen und Maschinen vom gleichen Typ sein.
Der Maschinentyp ist routingCode
, also bin ich daran interessiert, alle Maschinen in der Linie auszuwählen und sie zu gruppieren. Nur Maschinen mit unterschiedlichen routingCode
sollten separat angezeigt werden, und ich möchte die Anzahl der Maschinen jedes Typs erhalten.
Dies geschieht auf diese Weise.
SELECT routingcode, name, count(1)
FROM machines
JOIN log ON log.machinebarcode = machines.barcode
WHERE log.linebarcode = 100000000001
GROUP BY routingcode, name
Okay, alles reibungslos läuft, aber auf diese Weise ich nur Maschinen erhalten, die in log
Tabelle beziehen und haben Datensatz nach linebarcode
.
Ich dachte, dass, wenn ich LEFT JOIN
die Protokolltabelle ich alle Maschinen aus der machines
Tabelle bekommen und sie anzeigen und natürlich nur Maschinen, die in log
Tabelle gefunden werden count
, aber nein.
Wo bin ich falsch und wie finde ich einen geeigneten Workaround?
Sie geben wird Dank! Ich wusste nicht, dass ich viele Bedingungen für den Beitritt stellen kann. :) –