Sto provando a fare il join sinistro in una query, ma sembra che io abbia sbagliato da qualche parte.SQL Server a sinistra che unisce
table machines
--------------
machineID
FaNo
Barcode
RoutingCode
Name
table log
-------------
logID
lineBarcode
machineBarcode
Nella tabella di registro sono presenti record sulle macchine e sulle linee. Su una riga ci possono essere molte macchine e macchine diverse dello stesso tipo.
Il tipo di macchina è routingCode
, quindi sono interessato a selezionare tutte le macchine nella linea e raggrupparle. Solo le macchine con diverso routingCode
dovrebbero essere visualizzate separatamente e voglio ottenere il conteggio delle macchine di ogni tipo.
Questo è fatto in questo modo.
SELECT routingcode, name, count(1)
FROM machines
JOIN log ON log.machinebarcode = machines.barcode
WHERE log.linebarcode = 100000000001
GROUP BY routingcode, name
Va bene tutto fila liscio, ma in questo modo ottengo solo le macchine che sono connessi nella log
tavolo e avere registrare in base al linebarcode
.
Ho pensato che se avessi LEFT JOIN
la tabella dei log avrò tutte le macchine dalla tabella machines
e le visualizzeremo e naturalmente solo le macchine che si trovano nella tabella log
avranno il count
corretto, ma no.
Dove sto sbagliando e come trovare una soluzione adeguata?
Grazie! Non sapevo di poter mettere molte condizioni sul join. :) –