Select Distinct e leggere tutti i campi

lunedì 31 maggio 2010 - 15.00

ridaria Profilo | Expert

Ciao amici.
Database SQL Server 2008

Ho la necessità di eseguire una lettura su una Vista tralasciando i duplicati (Select Distinct), e ottenere comunque tutti i campi della Vista:

Un esempio:

nella vista Articoli ho i seguenti campi:

codice
codiceFornitore
nome
descrizione
prezzo
quantità
giacenza

I duplicati li individuo grazie al campo codice, pertanto eseguo la seguente query:


Select Distinct (codice), codiceFornitore,nome,descrizione,prezzo, quantità, giacenza from View_Articoli where codice like '90002%' or codiceFornitore like '90002%'

Il risultato che ottengo è con i duplicati!!!!:-(

D'altro canto non posso fare:
Select Distinct (codice) from View_Articoli where codice like '90002%' or codiceFornitore like '90002%' perchè a me in lettura sevono tutti i dati del record: nome descrizione etc.....


Si può risolvere questo problema?????


Grazie.


Riccardo D'Aria

StefanoRicci Profilo | Junior Member

>Ciao amici.
>Database SQL Server 2008
>
>Ho la necessità di eseguire una lettura su una Vista tralasciando
>i duplicati (Select Distinct), e ottenere comunque tutti i campi
>della Vista:
>
>Un esempio:
>
>nella vista Articoli ho i seguenti campi:
>
>codice
>codiceFornitore
>nome
>descrizione
>prezzo
>quantità
>giacenza
>
>I duplicati li individuo grazie al campo codice, pertanto eseguo
>la seguente query:
>
>
>Select Distinct (codice), codiceFornitore,nome,descrizione,prezzo,
>quantità, giacenza from View_Articoli where codice like '90002%'
>or codiceFornitore like '90002%'
>
>Il risultato che ottengo è con i duplicati!!!!:-(
>
>D'altro canto non posso fare:
>Select Distinct (codice) from View_Articoli where codice like
>'90002%' or codiceFornitore like '90002%' perchè a me in lettura
>sevono tutti i dati del record: nome descrizione etc.....
>
>
>Si può risolvere questo problema?????
>
>
>Grazie.
>
>
>Riccardo D'Aria

non so se si può fare oppure se ho inteso male.... al momento non opero molto sui DB, comunque sia, non puoi fare un join tra la vista ed il risultato della select distinct del campo codice?... spero di non farti perdere del tempo
--------------------------------------

IDE: Visual Studio 2008 Professional Edition

nico839 Profilo | Senior Member

ciao,

io per tirare via i "doppioni" faccio

DELETE articoli
WHERE ID NOT IN
(
SELECT min(ID)
FROM articoli
GROUP BY codice
)

e funziona...prova magari facendo una select tipo :

Select codice, codiceFornitore,nome,descrizione,prezzo, quantità, giacenza from View_Articoli where
id in (select min(id) from articoli group by codice) and
codice like '90002%' or codiceFornitore like '90002%'



Ciao.
Nicolas

scarzy88 Profilo | Newbie

fai attenzione che quando fai una select distinct si applica a tutti i campi della select.
Quindi se hai anche solo un campo che varia da una riga ad un altra, ti trovi con i doppioni
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