Newsgroup: it.comp.lang.visual-basic
Titolo: Creazione query impossibile( lungo )...

Salve!!!!!
... Ci credete ai miracoli?
Beh, io devo riuscire a far funzionare questo statement:
"Select IdDoc From Attributi where( IdTabella=1 and Codice = 1 ) and (
IdTabella = 2 and Codice = 1 )" .
Descriviamo un pň il problema :-)
Io ho un valore IdDoc. Ogni IdDoc puň essere associato a piů IdTabella ed
Codice.
La struttura di Attributi č cosě:
IdDoc
Codice
IdTabella
Siccome piů varianti di coppie( IdTabella,Codice ) possono essere associate
ad un solo
IdDoc, io devo riuscire a prendere tutti i criteri di filtro.
Il problema č che IdTabella e Codice non possono avere nello stesso momento
2 valori
diversi, tuttavia non posso nemmeno mettere in OR le due coppie di
condizioni, in quanto
i risultati rischiano di essere sballati( poiché puň ritornare altri IdDoc
che non soddisfano
entrambe le condizioni ).
Tenendo conto che il numero dei criteri puň variare da 1 a N,
Secondo voi, che devo fare?
Grazie in anticipo,
Andrea


[cut]
la condizione where che hai scritto non sara' _mai_ vera,
e questo lo sai gia', perche' non fai un esempio dei dati
che hai e del risultato che vuoi ottenere?
(dalla spiegazione non ho capito una cippa ;)
stand by
R

 (dalla spiegazione non ho capito una cippa ;)
Ok :-)
Ecco la tabella:
IdDoc   Codice    IdTabella
  4              1               1
  4              1               2
  5              1               2
  5              2               1
Ecco qui, questa è la tabella.
Supponiamo che io voglio ottenere l'IdDoc che abbia verificato IdTabella=1,
Codice=1,IdTabella=2 e Codice = 1.
Devono essere verificate tutte e quattro contemporaneamente.
Che devo fare?
Andrea


select * from tabella where (idtabella=1 and codice=1) or (idTabella=2 and
codice=1)
--
Salutoni
Sergio

 (idTabella=2 and codice=1)
Con la tua query il risultato è( in Q.A. ):
IdDoc
   4
   4
   5
Io devo ottenere solo 4  e deve essere un unico risultato :-)
Ciao
Andrea
P.S. Grazie lo stesso per l'aiuto, ma avevo già provato quella soluzione

L'unico modo che mi è venuto in mente per fare
questa cosa è usare una intersect.
Ma come si fa una intersect?
Sarà poi davvero utile farla?
Grazie di tutto,
Andrea

 Io devo ottenere solo 4  e deve essere un unico risultato :-)
Scusa, avevo capito male il quesito, adesso è più chiaro.
Mi sa che devi aspettare albe, per avere una risposta. Si tratta, credo, di
effettuare due query, ciascuna con il proprio criterio, ed estrarre gli id che
sono presenti in entrambe. Questo compito è al di sopra delle mie competenze SQL
--
Salutoni
Sergio

 Andrea
Alex

 Alex
Andrea


il problema e' che i valori che tu devi verificare sono in 'righe' diverse,
quindi non e' possibile con una sola SELECT trovare quello che cerchi.
detto questo ecco una possibile soluzione:
SELECT B.IDDoc
FROM test AS B INNER JOIN
            (SELECT IDDoc, Codice
             FROM test AS A
             WHERE A.Codice=1 AND A.IDTabella=1) AS C
                            ON B.IDDoc=C.IDDoc AND B.Codice =C.Codice
WHERE B.IDTabella=2
(con access funziona, con altri DB, tipo MySQL, non funziona)
HTH
bye
R

Guardate qui che query assurda( ma funziona ):
"Select IdDoc from Attributi where exists( Select IdDoc from Attributi where
( IdTabella = 2 and Codice = 1 ) ) and( IdTabella=1 and Codice = 1)"
Ecco, a questo punto, io devo innestare vari livelli di
select...where exists nel codice, e dovrebbe andare.
Sto piangendo solo all'idea... :-(
Andrea

 ha scritto nel messaggio
news:b2g791$1caod7$1...@ID-170738.news.dfncis.de...


 :-)
io so niubbissimo in tutto e soprattuttto sui Db , cmq credimi , un
consiglio , mettiti l'anima in pace e usa un altro recordset
popolando il risultato con la concatenazione di entrambi
es:
IdDoc   Codice    IdTabella
  4              1               1
  4              1               2
  5              1               2
  5              2               1
[Ado dao o miao]
data1.recordsource = Select * from tabella where IdTabella=1 AND
Codice=1
data1.recordsource = "SELECT * FROM tabella WHERE idTabella=2 AND Codice = 1
fin'ora me la sono cavata con raggiri come questo ! Speriamo continui la
pacchia !
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/