Dati due celle con stesso valore selezionarne solo la prima

mercoledì 21 ottobre 2009 - 22.28

paquito_ita Profilo | Senior Member

Ciao,

ho una query piuttosto complessa. Semplificando notevolmente la struttura (solo per i fini di esempio) porebbe essere del tipo:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

In sostanza uno stesso item puo' essere contenuto in diversi contenitori, ma il relativo IDitem e nome sono gli stessi. L'obiettivo è quello di visualizzare solo il primo di essi (potrebbero essere due o piu' in diversi contenitori). Quindi la terza riga NON andrebbe visualizzata affatto.
Non posso usare DISTINCT poichè la prima e la terza riga appaiono come due row differenti, anche se si riferiscono allo setsso oggetto.

Come potei ottenere questo?Utilizzo SQL Server 2008 come DB.
Grazie per l'aiuto.

lbenaglia Profilo | Guru

>In sostanza uno stesso item puo' essere contenuto in diversi
>contenitori, ma il relativo IDitem e nome sono gli stessi. L'obiettivo
>è quello di visualizzare solo il primo di essi

Ciao Luca,

Il concetto di "primo o ultimo" non ha alcun senso quando si parla di RDBMS.
E' possibile riformulare la domanda come "L'obiettivo è quello di visualizzare univocamente un item avente ContainerID più alto (o più basso)"?

>Come potei ottenere questo?Utilizzo SQL Server 2008 come DB.
Ho risposto ad una domanda pressoché identica proprio ieri:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=32791

>Grazie per l'aiuto.
Prego.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org

paquito_ita Profilo | Senior Member

>Il concetto di "primo o ultimo" non ha alcun senso quando si parla di RDBMS.
>E' possibile riformulare la domanda come "L'obiettivo è quello di visualizzare univocamente un item avente ContainerID più alto
>(o più basso)"?

Scusami, mi ero espresso male. In pratica sono interessato a visualizzare solo una volta tale elemento. Non importa se il primo o l'ultimo, purché venga visualizzato solo una volta. Questo perché andrà a formare un link ai dettagli di tale oggetto e quindi deve essere visualizzato solo una volta anche se contenuto i diversi contenitori.

Posto qui la query nel caso tu riesca a vedere un modo ottimizzato (se possibile) per applicare la soluzine che hai proposto nel post a questo esempio. "itemTitle" e XXX.ID sono i campi uguali per lo stesso elemento, mentre gli altri field sono diversi.
Si tratta di 4 oggetti differenti (distinti dal field "type" che creo per comodità) cui inizializzo le colonne selezionate in base alla tipologia di item.

Grazie di nuovo
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5