Fråga : SQL - lista endast de rekord, var nyckel-, sätter in repetition

Jag har en logga att bordlägga som spårar sparar submissions med all relevant specificerar. Bordlägga har ett ökande primärt key.

I behov för det normala att lista endast det individen som rekord för sparar, som har sänts mer än en gång, baserat på specifika kolonner som berättar mig, att om ett rekord är, en repeat.

How kan jag göra denna? " för
filename " för class= för >

2010-07-06-1645.png " för att fileSize " > (11 KB) " javascript för href= " för <-/span>Table description class= för 323693
<-/div>
" " för >
<-/div> " klar "

Svar : SQL - lista endast de rekord, var nyckel-, sätter in repetition

>> specifika kolonner som berättar mig, om ett rekord är en repetition.

Så vad är de specifika kolonner?  Vilken version av SQL-serveren?

Få tankar kommer att vara besvärad…,  Låter för att anta orig_filename (för något att säga), gruppen, typ är de tre kolonnerna som identifierar unikt ditt sparar för submission

-- tänkt 1 - showen det extra anföra som exempel precis - sätt kolonnerna som behövs faktiskt unikt för att identifiera i ”delningen vid” delen (SQL 2005, SQL 2008)

välj *
från (vald row_number () över (delningen vid orig_filename, [gruppen], [typ] beställer vid submitid), som rn, * från csmsadmin.submissions) s
var s.rn > 1

-- tänkta 2 - använd räkningen för att identifiera orig_filename, inkluderar alla anföra som exempel inte precis lättlurad person (någon SQL-server)

välj *
från csmsadmin.submissions s
var 1 <�>
-- tänkta 3 - använd en sammanfoga - om bestämt där är index som ska användas (någon SQL-server)

välj s.*
från csmsadmin.submissions s
inre sammanfoga csmsadmin.submissions-sc på sc.orig_filename = s.orig_filename och Sc. [grupp] = S. [grupp] och Sc. [typ] = S. [typ] och sc.submitid <> s.submitid


Det finns andra metoder som väl, beror a bet lite på vad vi kan och cant bruk benämner in av kolonner och version
Andra lösningar  
 
programming4us programming4us