Newsgroup: it.comp.appl.access
Titolo: criterio di esclusione su query unione

Salve a tutti.
Ecco il mio quesito.
Devo rendicontare un finanziamento suddiviso in voci di costo.
Ho due tabelle: in una importo dal programma di contabilità le spese
sostenute per singola voce di costo, nell'altra ho creato per ognuna
di essa un record con costo pari a 0.
Se per una voce di costo ho delle spese importate nella prima tabella,
nella query unione il record riferito alla stessa voce di costo a 0
euro presente nella seconda tabella non deve essere aggiunto
nell'elenco dei record.
In pratica per ogni conto devo avere almeno un costo.
Qual'è l'istruzione WHERE che devo mettere dopo l'elenco dei campi
della sezione UNION SELECT?
Grazie.
Giuseppe.

"Giuseppe"  ha scritto nel messaggio 
news:6d7f8aeb-f202-4134...@s16g2000yqc.googlegroups.com...

________________Risposta:
Non è una union ma un JOIN
SELECT C.* FROM TabellaImportata AS C INNER JOIN Tuatebella as T
ON T.Tuocampo = C.SuoCampo
MA

 "Giuseppe"  ha scritto nel messaggionews:6d7f8aeb-f202-4134...@s16g2000yqc.googlegroups.com...

Ciao Massimiliano.
Nella tabella che importa i dati ho sei record. Le voci di costo del
finanziamento sono quattro, e dei sei record della tabella importata
una voce di costo non ha record.
Nella tabella temporanea con costi pari a 0, ho messo quattro record
uno per ogni voce di costo.
Quindi la query (di unione o con un Join) mi deve restituire i sei
record della prima tabella e solo un record della seconda tabella
relativo alla voce di costo non  compresa nei sei record della prima
tabella per un totale di 7 record.
Con la query da te suggerita mi restituisce solo i 6 record della
tabella con i dati importati.
Ho sbagliato io o è così?
Giuseppe.

 MA
Ciao Massimiliano.
Nella tabella che importa i dati ho sei record. Le voci di costo del
finanziamento sono quattro, e dei sei record della tabella importata
una voce di costo non ha record.
Nella tabella temporanea con costi pari a 0, ho messo quattro record
uno per ogni voce di costo.
Quindi la query (di unione o con un Join) mi deve restituire i sei
record della prima tabella e solo un record della seconda tabella
relativo alla voce di costo non  compresa nei sei record della prima
tabella per un totale di 7 record.
Con la query da te suggerita mi restituisce solo i 6 record della
tabella con i dati importati.
Ho sbagliato io o � cos�?
Giuseppe.
____________Risposta:
Allora devi usare una union
Select codice FROM tuatabella
UNION
Select codice FROM Altra tabella WHERE codice NOT IN (Select codice from 
tuatabella)
MA

 "Giuseppe"  ha scritto nel messaggionews:6f8fc91b-ee0c-4574...@f8g2000yqf.googlegroups.com...

Ciao Massimiliano ma tu per "codice" intendi l'elenco dei campi?
Quindi nella condizione WHERE li devo copiare/incollare altre due
volte?
Ciao.
Giuseppe.


Risolto.
Grazie. Giuseppe.


Scusate, rimanendo nella query unione, ho unito tre tabelle, ma devo
correlare per le prime due una quarta tabella.
il codice FROM [quartatabella] INNER JOIN [primatabella] ON
[quartatabella].Codice = [primatabella].CAUSALE
lo devo unire a
SELECT mieicampi
FROM  primatabella LEFT JOIN [terzatabella] ON (primatabella.voce =
[terzatabella].voce)
 
 
mentre il codice FROM [quartatabella] INNER JOIN [secondatabella] ON
[quartatabella].Codice = [secondatabella].CAUSALE
lo devo unire a
UNION SELECT mieicampi
FROM [secondatabella] LEFT JOIN [primatabella] ON
([secondatabella].voce = [primatabella].voce)
 
questa terza tabella non ha bisogno di essere correlata e resta così
com'è.
UNION SELECT mieicampi
FROM [terzatabella] LEFT JOIN [primatabella] ON ([terzatabella].voce =
primatabella.voce)
 
Come diventa il codice che correla la quarta tabella alla prima
tabella e alla seconda tabella tenendo conto dell'unione delle prime
tre tabelle?
Spero di essere stato chiaro.
Grazie.