PDA

Visualizza la versione completa : [MS SQL] Select multiple con T-Sql


Debiru
29-04-2008, 12:51
Salve, non so se scrivo nella sezione giusta :unz:

Dunque, dovrei fare una query un pò particolare, per iniziare ne ho fatta una con T-Sql che più avanti mi farà arrivare a quella finale, quindi se notate che l'eventuale risultato si poteva ottenere con una semplice query è solo perché questa fatta così mi serve per sperimentare :)

Ecco l'esempio.


SET NOCOUNT ON

DECLARE @login varchar(50)

DECLARE cursore CURSOR FOR
select distinct utente
from tabella_prodotti with (nolock)

OPEN cursore

FETCH NEXT FROM cursore
INTO @login

WHILE @@FETCH_STATUS = 0
BEGIN

select cognome,nome from tabella_utenti where login=@login;

FETCH NEXT FROM cursore
INTO @login
END
CLOSE cursore
DEALLOCATE cursore


Questa sintassi genera un serie si select separate composte da un'unica riga, quello che vorrei ottenere invece è una sola tabella che contiene tutte le righe generate da questa procedura.

avevo tentato con questo:


SET NOCOUNT ON

DECLARE @login varchar(50)

DECLARE cursore CURSOR FOR
select distinct utente
from tabella_prodotti with (nolock)

OPEN cursore

FETCH NEXT FROM cursore
INTO @login

IF @@FETCH_STATUS = 0
BEGIN
select cognome,nome from tabella_utenti where login=@login;
FETCH NEXT FROM cursore
INTO @login
END
WHILE @@FETCH_STATUS = 0
BEGIN

union
select cognome,nome from tabella_utenti where login=@login;

FETCH NEXT FROM cursore
INTO @login
END
CLOSE cursore
DEALLOCATE cursore

Ma mi ha fatto il gesto dell'ombrello (errore su union).

Avete qualche suggerimento?

Grazie

stefanomnn
29-04-2008, 19:29
CIAO!
potresti crearti una tabella temporanea,
inserire i dati nella tabella temporanea (con la insert into select)

e infine fare select * from #tabellaTemporanea

:ciauz:

Debiru
29-04-2008, 20:16
Ci avevo anche pensato ma per questione di permessi vari non posso... :(

stefanomnn
29-04-2008, 20:22
e fare una select del tipo

select cognome,nome from tabella_utenti where login
in (select select distinct utente from tabella_prodotti with (nolock)

?

Debiru
29-04-2008, 22:15
Purtroppo non funzionerebbe :(

La select che ho scritto è solo un esempio minimo, ma in realtà mi serve per una select molto più grande e complessa, usare una inner select non funzionerebbe, cmq piano piano sto trovando altre strade...

E' che devo dare in pasto al sistema di Reporting Services una select abbastanza complessa con diverse funzioni di aggregazione e non è molto semplice :)

Tnx

Loading