---
title: "Dublett-problem!"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/161427-dublett-problem"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "Troxy"
published: "2007-06-12T15:36:52.000Z"
updated: "2007-06-13T15:39:15.000Z"
replies: 5
views: 493
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/161427-dublett-problem"
---

# Dublett-problem!

## #1 — Troxy, 2007-06-12T15:36Z

Hallå, jag har problem med dubletter i en tabell.
Det känns som ett så simpelt problem, men jag lyckas inte lösa det.
Använder SQL Server 2000.
Jag har en fet tabell med massor av kunder i, där det bla. finns personnummer, namn, adress, telefon mm.

Det finns dubbletter, dvs. samma personnummer förekommer ibland två eller tre gånger.
Jag vill göra en SELECT på alla kunder men bara få ut dom EN gång.
DISTINCT fungerar inte i detta fall eftersom andra fält kan skilja sig en aning.
Så det är personnumret man måste gå på.

Hur ska jag lösa detta?
Står helt still i huvudet.  x(
Tacksam för svar! :)

Permalänk: https://www.webforum.nu/p/161427

## #2 — Peter S, 2007-06-12T18:33Z

Om samma person existerar på flera rader, vilken av dessa vill du då ha? Det är vad du måste bestämma. Princip:

```
select [red]field1
     , field2
     , ...
     , fieldn[/red]
  from t
group
    by [red]field1
     , field2
     , ...
     , fieldn[/red]
```

Permalänk: https://www.webforum.nu/p/1989773

## #3 — Troxy, 2007-06-12T19:00Z

Det spelar ingen roll vilken person som väljs, eftersom det är samma person.

Gruppring löser tyvärr inte problemet.
Jag vill ju hämta gatuadress, postnr och allt sånt.
Då måste jag även gruppera på dessa fält.
Men oftast så är fälten inte exakt lika ifyllda, det kan skilja lite mellanrum, vara stavfel.

Permalänk: https://www.webforum.nu/p/1989783

## #4 — Troxy, 2007-06-13T14:53Z

Finns det ingen smidig lösning?
Här är ett förenklat exempel:

```
persnr      förnamn     efternamn     adress
-------------------------------------------------
9090909090  sven        svensson      grönvägen 1
[red][B]9090909090  sven        svensson      grönv 1[/B][/red]
8080808080  anders      andersson     storgatan 2
[red][B]8080808080  anders      andersson     storg.2[/B][/red]
```

Hur gör jag en Select som skippar dom feta raderna?
(eller egentligen spelar det ingen roll vilka rader som skippas, så länge personnumret förekommer EN gång)

Permalänk: https://www.webforum.nu/p/1989997

## #5 — LarsG, 2007-06-13T15:26Z

```
select persnr,förnamn,efternamn,adress
  from t as q
 where adress in 
    (select max(adress) 
       from t
      where t.persnr = q.persnr)
```

Permalänk: https://www.webforum.nu/p/1990008

## #6 — Troxy, 2007-06-13T15:39Z

Tack så mycket, ska testa direkt.
Men tyvärr så misstänker jag att det inte är en hållbar lösning eftersom adressen ibland är lika.

EDIT:
Jag byggde om din lösning lite LarsG, och fick en som fungerade!
Genom att använda fältet ID istället för Adress så fungerar det, eftersom ID alltid är unikt!

```
select persnr,förnamn,efternamn,adress
  from t as q
 where id in 
    (select max(id) 
       from t
      where t.persnr = q.persnr)
```

Permalänk: https://www.webforum.nu/p/1990011

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/161427-dublett-problem
