Salve,
sono un novellino, sia del forum che di SQL, ma mi piace cimentarmi in queste cose. Ho cercato un forum italiano su MSSQL e vi ho scovato
Vengo al problema, dovrei eseguire una query su delle tabelle e vorrei mi fossero restituiti dei dati e solo nel caso mancasse il dato di una tabella vorrei mi fosse restituito un altro dato.
Esempio, date queste tabelle con i rispettivi campi:
ART_ICOL.ARCODART | KEY_ARTI.CACODICE | KEY_ARTI.CACODCON | KEY_ARTI.CATIPCON
codice codicealt_1 0000358 FORNITORE
codice codicealt_2 INTERNO
codice1 codicealt1_1 0000358 FORNITORE
codice2 codicealt2_1 INTERNO
codice2 codicealt2_2 0000358 FORNITORE
codice3 codicealt3_1 INTERNO
Ho utilizzato questo codice ma mi restituisce sia la riga dove è presente CATIPCON=FORNITORE sia la riga dove è presente CATIPCON=INTERNO, io vorrei che mi restituisse la riga FORNITORE e se manca questa mi restituisse la riga INTERNO. In realtà le tabelle interessate sono di più ma ho cercato di semplificare al massimo:
Select ....
from ....((((COM22ART_ICOL ART_ICOL Inner Join COM22SALDIART SALDIART on ART_ICOL.ARCODART=SALDIART.SLCODICE) Inner Join COM22GRUDMAG GRUDMAG on SALDIART.SLCODMAG=GRUDMAG.GRCODMAG)
Left outer Join COM22PAR_RIOR PAR_RIOR on ART_ICOL.ARCODART=PAR_RIOR.PRCODART) Full Join COM22KEY_ARTI KEY_ARTI on ART_ICOL.ARCODART=KEY_ARTI.CACODART)
where (KEY_ARTI.CACODCON = '0000358' AND KEY_ARTI.CATIPCON = 'FORNITORE') OR KEY_ARTI.CATIPCON = 'R'
Mi sembra una cosa talmente banale, ma non riesco a farlo.. ho tentato con IIF, CASE, ISNULL, UNION, ma niente.
Grazie a chi vorrà dedicarmi un po' del suo tempo