webForumDet fria alternativet

Jämföra två rader

Databaser & SQL

3 svar · 626 visningar · startad av BrutalDeluxe

Medlem sedan nov. 200650 inlägg
Frågan#1

Tjena!

Har ett litet klurigt problem på jobbet idag, eller ja, det är klurigt för mig för jag är inte så jättehaj på SQL. Jag har en tabell med fälten id, namn, beskrivning och datum (inte riktigt men principen är densamma). Id är unikt (löpnummer). Det jag vill åstadkomma nu är att hitta alla dubletter, dvs rader där namn, beskrivning och datum är detsamma och dessa rader vill jag visa. Det är SQL Server, och jag vill ha det till att jag måste fixa en stored procedure.

Comparer
BEGIN
  -- Hämta alla poster
  SELECT * FROM Tabellen 

  -- Loopa igenom resultatet och kontrollera om i samt i + 1 är lika
  -- isåfall spara på något sätt.

END

Någon som har något förslag så blir jag jätteglad :)

God jul!

Medlem sedan dec. 20025 483 inlägg
#2
select f1
     , f2
     , fn
  from t
group
    by f1
     , f2
     , fn
having count(*) > 1
Medlem sedan nov. 200650 inlägg
#3

Ah, tack! Men... hur får jag med ID:t i resultatet också, den kan jag ju inte gruppera på.

Medlem sedan dec. 20025 483 inlägg
#4
select id
     , f1
     , f2
     , fn
  from tbl t
 where exists
  ( select 1
      from tbl
     where id <> t.id
       and f1 =  t.f1
       and f2 =  t.f2
       and fn =  t.fn )
259 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)