>Dovresti usare una left Join se ricordo bene.
non è tanto un discorso di left, ma di OUTER. E comunque quello che proponi risolve la problematica, tuttavia vorrei spiegare un po' più nel dettaglio la faccenda.
Le INNER join sono join che fanno intersezione e quindi, se un record della filiera non si lega con gli altri (tutti in INNER) la riga viene nascosta.
Per questo motivo devi capire qual è la tabella che potrebbe non avere un record di legame sulla condizione che hai disegnato e determinare chi tra le tabelle che stai legando sta a "destra" o "sinistra". In base a questo scegli se fare LEFT o RIGHT join.
Nel tuo caso, ipotizzando di avere almeno un cliente direi:
SELECT
p.codice
, p.COGNOME
, p.NOME
, pv.ORDINI
, v.INVIATI
FROM
dbo.CLIENTI AS p
LEFT JOIN dbo.ORDINI AS pv ON p.CODICI = pv.CODICI
LEFT JOIN EVASI AS v ON p.CODICE = v.CODICE
WHERE
p.CODICE = '1200'
Ora c'è un secondo problema, i campi per cui il legame non si verifica vengono mostrati come NULL. Se hai un'applicazione a monte che legge, puoi decidere di lasciarli così e far gestire la problematica all'app stessa. Se invece vuoi dare un diverso valore in caso di NULL, puoi usare ISNULL o COALESCE in questo modo:
SELECT
p.codice
, p.COGNOME
, p.NOME
, ORDINI_NONNULL = ISNULL(pv.ORDINI, 0)
, INVIATI_NONNULL = COALESCE(v.INVIATI, -1)
FROM
dbo.CLIENTI AS p
LEFT JOIN dbo.ORDINI AS pv ON p.CODICI = pv.CODICI
LEFT JOIN EVASI AS v ON p.CODICE = v.CODICE
WHERE
p.CODICE = '1200'
i due nomi prima dell'uguale sono gli alias (è un'altra sintassi rispetto ad AS).
ISNULL richiede due parametri sempre, il primo è il valore che viene testato e il secondo è il valore che deve essere messo se il primo è NULL (fai attenzione, io non sapendo se è stringa o numerico ho messo uno 0, ma devi rispettare il tipo del campo).
COALESCE usata così è pressochè identica ad ISNULL ma la funzione è un po' diversa poichè ha più di due parametri facoltativi e torna il primo dei valori NON NULL dei parametri passati.
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.microsoft.com/profiles/Alessandro.Alpi