>Salve,
Ciao
>Per motivi di tempo ho momentaneamente "aggirato" l'ostacolo
>con un programmino in VB.NET. Sono sicuro che potevo risolvere
>con una query, ma il poco tempo a mia disposizione mi ha visto
>costretto a percorrere altre vie.
>Mi dite come avrei dovuto strutturare questa query ?
Questo è il classico scenario da LEFT JOIN:
SELECT
T1.Fornitore
, COALESCE(T2.valore1, 0) AS Valore1
, COALESCE(T2.valore2, 0) AS Valore2
, COALESCE(T2.valore3, 0) AS Valore3
FROM
Tabella1 AS T1
LEFT OUTER JOIN Tabella2 AS T2 ON T2.Fornitore = T1.Fornitore
Con questo codice tu vedrai tutti i record di Tabella1 indipendentemente dal fatto che esista un match col campo fornitore. Siccome dove non si verifica la condizione di join otterrai per i campi di T2 dei valori NULL, la funzione COALESCE ti consente di mettere al suo posto il valore 0, indicato come secondo parametro (potrebbe essere un altro valore o addirittura una serie di altri parametri). La refenrece è qui: http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db2.doc.sqlref/fcoal.htm
>Grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi