Selezionare un solo record di due uguali

giovedì 16 giugno 2011 - 10.57

trinity Profilo | Guru

Ragazzi,
io ho una tabella dove all'interno ci sono dei record a volte record esattamente duplicati..ovviamente la chiave è un indice autoincrement....( non vi sto a dire il perchè di record doppi in quanto dovrei fare una spiegazione molto lunga) in pratica io con una select vorrei prendere solo un record se nel caso ci fossero diversi uguali...Io allora ho pensato ad un group by solo che di questi record solo il nome,cognome,datanascita e stato nascita sono uguali, in quanto gli altri campi potrebbe essere diversi quindi il group by non mi funziona perchè i campi non indicati devo essere per forza inclusi e quindi ecco che gli stessi record vengono presi tutti. ma c'è anche qualche altra funzione o metodo di sql che si può adottare?

Ciao e grazie
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alx_81 Profilo | Guru

>Ragazzi,
Ciao

>io ho una tabella dove all'interno ci sono dei record a volte
>record esattamente duplicati..ovviamente la chiave è un indice
>autoincrement....( non vi sto a dire il perchè di record doppi
>in quanto dovrei fare una spiegazione molto lunga) in pratica
>io con una select vorrei prendere solo un record se nel caso
>ci fossero diversi uguali...Io allora ho pensato ad un group
>by solo che di questi record solo il nome,cognome,datanascita
>e stato nascita sono uguali, in quanto gli altri campi potrebbe
>essere diversi quindi il group by non mi funziona perchè i campi
>non indicati devo essere per forza inclusi e quindi ecco che
>gli stessi record vengono presi tutti. ma c'è anche qualche altra
>funzione o metodo di sql che si può adottare?
indicativamente credo tu possa cancellare i duplicati utilizzando le CTE e le ranking functions, come spiego anche in questo post sul blog:
http://blogs.dotnethell.it/suxstellino/Funzioni-di-ranking-esempi-di-utilizzo__5419.aspx

però puoi sempre postare una struttura simile alla tua con i dati replicati in modo da aiutarti meglio nella scrittura di una query utile.

>Ciao e grazie
di nulla!
--
Alessandro Alpi | SQL Server MVP
MCP|MCITP|MCTS|MCT

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi

redevil1983 Profilo | Newbie

Se ho capito bene il tuo discorso .... usare la distinct non ti tornerebbe utile ?

lbenaglia Profilo | Guru

>io ho una tabella dove all'interno ci sono dei record a volte
>record esattamente duplicati..ovviamente la chiave è un indice
>autoincrement....( non vi sto a dire il perchè di record doppi
>in quanto dovrei fare una spiegazione molto lunga) in pratica
>io con una select vorrei prendere solo un record se nel caso
>ci fossero diversi uguali...Io allora ho pensato ad un group
>by solo che di questi record solo il nome,cognome,datanascita
>e stato nascita sono uguali, in quanto gli altri campi potrebbe
>essere diversi quindi il group by non mi funziona perchè i campi
>non indicati devo essere per forza inclusi e quindi ecco che
>gli stessi record vengono presi tutti.

Ciao Fabio,

Allora, prima dici che le righe "esattamente duplicate" poi poco sotto dici che differiscono diverse colonne.
Se vuoi ricevere supporto posta il solito esempio completo con il risultato che intendi ottenere con quei dati.

Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5