Newsgroup: it.comp.appl.access
Titolo: problema di query

Ho postato il seguente quesito ma non ho ricevuto risposta. Non so
interpretare il silenzio se come impossibilità di risolvere il problema o
mal formulazione del quesito.
Ho una tabella A con i campi A1 e A2, una tabella B con il campo B1 e una
tabella C con il campo C2. Ho bisogno di creare una query che mi restituisca
i record della tabella A mettendo in relazione A1 con B1 e soltanto qualora
non vi siano record mi restituisca i record della tabella A mettendo in
relazione il campo A2 con C2. Provando ad esemplificare:
tabella A        campo A1        campo A2
Matteo               1
Luca                                            3
Giorgio               2
tabella B         campo B1
                            1
                            2
tabella C        campo C2
                            3
La query dovrebbe restituirmi tutti e tre i record, mentre se metto in
relazione A1 con B1 e A2 con C2 non mi restituisce nessun record. Ci
vorrebbe qualcosa tipo OR?
grazie

Matteo ha scritto:

select a, b from t1, t2 where t1.a = t1.b
union
select a,b from t1,t2 where t1 not in (select a frm t1,t2 where t1.a =
t1.b)
a.cara 
P.S. salvo erori (sic?) e/o omissioni


ho provato ma non funziona, mi sembra inoltre che manchi il riferimento alla
terza tabella o sbaglio?
grazie


pensavo che fosse sufficiente indicare la "via", riletto il post se vuoi
il campo A1 o il campo A2 e' possibile
	select A.A1 where A.A1 = B.B1
	union
	Select A.A2 where A.A1 is Null
oppure
	select iif(A.A1 is null,A.A2,A.A1) As tuonome
-- 
Alessandro Cara

 wrote in message
397EA4C5...@blunet.it...

ero riuscito ad interpretare la "via", Alessandro, solo che non capisco dove
si inserisce il la tabella C e il campo C2.
ciao

 ciao
da quanto ho, poi, capito della richiesta le tabelle B e C non ti
servono perche' i dati ce li hai su A (cfr. soluzione 2). come gia'
detto, rileggendo il post mi sembra che la risposta precedente non era
coerente con quanto richiesto quelle in quota invece mi sembra di si.
quella di ieri riveduta
select a2 from t1, t2 where t1.a1 = t2.b1    'estrae gli accoppiamenti
t1,t2
union
select a2  from t1,t3 where 
	t1.a1 not in (select t1.a1 from t1,t2 where t1.a1 = t2.b1 and t1.a1 is
not null)   'esclude quelli gia' accoppiati ed i null su a1
	and t1.a2 = t3.c2			'preleva solo quelli uguali fra t1,t3 
questa tiene conto che:
1) su t1 possono esistere contemporaneamente valorizzati sia a1 che a2,
in questo caso preleva a1
2) che alcuni valori a1 non sono presenti su b1 (vengono esclusi ed
associato il valore a2 se presente)
3) che valori presenti in a2 non sono presenti su c2 (vengono esclusi)
-- 
Alessandro Cara

 Alessandro Cara
Ho provato ma non funziona. Se hai ancora pazienza o voglia ti pongo
l'esempio concreto che forse sarà più chiaro:
1) ho una tabella "contratti storico" che é un archivio anagrafico con molti
campi tra i quali un campo "numerovoltura" e un campo "numeronuovo" e un
campo "numerocontratto"
2) ho una tabella "archivio volture" con altri dati anagrafici, molti campi
tra cui un campo "numero" (un progressivo) riferito al numero di richiesta.
Tale numero viene inserito ogni volta che confermo una immissione in tale
tabella nel campo "numerovoltura" della tabella "contratti storico"
3) ho una tabella "archivio nuovi" con altri dati anagrafici, molti campi
tra cui un campo "numero" (un progressivo) riferito al numero di richiesta.
Tale numero viene inserito ogni volta che confermo una immissione in tale
tabella nel campo "numeronuovi" della tabella "contratti storico"
Il problema é che ho bisogno di creare una query che mi visualizzi tutti i
numeri dei contratti (vd. tabella "contratti storico" campo
"numerocontratto") e vicino il "numerovoltura" o il "numeronuovo" oltre al
valore di altri campi contanuti nella tabella "archivio volture" oppure
"archivio nuovi". E' per questo che voglio riuscire a relazionare il campo
"numero" con il campo "numerovoltura" oppure "numeronuovo"
E' un casino?!?!?
Ciao


sono riuscito. grazie ugualmente Alessandro.
ad maiora