PDA

Visualizza la versione completa : [SQL] Query con condizioni di inclusione/esclusione {era: Query}


flarella
12-09-2005, 14:42
Ciao ragazzi.

Ho bisogno di una query, ma non sono molto pratico con sql mi potete dare una mano?

Ho due tabelle così composte

TAB1
CodC
Nome
Cognome

TAB2
CodC
Modulo

Ora devo fare una lista di tutti quelli che non hanno il modulo X filtrando però il campo modulo con diverso da X mi fa uscire tutti i record che non hanno il modulo X ma se un soggetto oltre all'X ha l'Y e lo Z me lo fa uscire con questi due. come si può risolvere?

Grazie

Aki
12-09-2005, 14:55
Originariamente inviato da flarella
Ciao ragazzi.

Ho bisogno di una query, ma non sono molto pratico con sql mi potete dare una mano?

Ho due tabelle così composte

TAB1
CodC
Nome
Cognome

TAB2
CodC
Modulo

Ora devo fare una lista di tutti quelli che non hanno il modulo X filtrando però il campo modulo con diverso da X mi fa uscire tutti i record che non hanno il modulo X ma se un soggetto oltre all'X ha l'Y e lo Z me lo fa uscire con questi due. come si può risolvere?

Grazie

???? :confused:

non c'ho capito un acca, puoi spiegare meglio?

alka
12-09-2005, 14:55
Il titolo che hai usato per la discussione è piuttosto generico e non include il linguaggio come da Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=862015).

Modifico il titolo io così puoi prendere spunto per la prossima volta, ok? :)

Ciao! :ciauz:

flarella
12-09-2005, 15:13
Scusate per il titolo!

Allora le tabelle sono 2

Es Tab A

CodC Nome Cognome
01 Pippo Pluto
02 Paperino Paperina

Es Tab B

CodC Modulo
01 A
02 C
01 E
01 F

In grassetto la chiave primaria. Ora io vorrei avere una lista di tutti quelli che non hanno il modulo A quindi dovrei avere solo una riga con il codice 02 e non anche le righe di 01 con i moduli E e F.

flarella
12-09-2005, 16:22
Allora sto provando a fare la cosa in Access ho fatto una Query1 che mi seleziona tutti i CodC che hanno il modulo A adesso come faccio a fare un altra query e dirgli prendimi tutti i CodC tranne quelli uguali al risultato della query1?

floyd
12-09-2005, 17:32
SELECT *
FROM taba
WHERE codc NOT IN (SELECT codc
FROM tabb
WHERE modulo = 'A')
dovrebbe essere questo

flarella
12-09-2005, 21:06
SELECT *
FROM taba
WHERE codc NOT IN (SELECT codc
FROM tabb
WHERE modulo = 'A')
dovrebbe essere questo



Mi dice che manca la parola riservata EXISTS nella proposizione FROM della query principale per chiarezza scrivo per intero la query da me inserita:

SELECT *
FROM anagrafica INNER JOIN contratti ON anagrafica.cod_contr = contratti.Cod_Contr
WHERE (((anagrafica.cod_contr) Not In (SELECT anagrafica.ragsoc, contratti.modulo, *
FROM anagrafica INNER JOIN contratti ON anagrafica.cod_contr = contratti.Cod_Contr
WHERE (([contratti]![modulo]="PAGHEA" Or (contratti.modulo)="GIOVE" Or (contratti.modulo)="STELBA")))));

flarella
12-09-2005, 21:22
Vabbè sono un idiota ci potevo arrivare anche da solo ora una domanda:
ho il mio bel listone con i clienti che non hanno quel modulo come posso ridurre le ridondanze (a me non interessa che il cliente X mi compare su tre linee con i moduli B, C, D) mi basta sapere che il cliente X non ha il modulo A

Loading