2016-03-28 11 views
0

Ich bin auf der Suche nach der besten SQL - Server - Methode, um Daten in einer Tabelle zu vergleichen und das Feld mutation_code mit Code 01 zu markieren, wenn es Unterschiede gibt vorherige BelastungMethode zur Abfrage von Änderungen in einer Tabelle mit mehreren Datenladungen und setzen der Mutationscode ID

Wie Sie sehen können, gibt es Unterschiede in der Tabelle für Eric und Lucy, daher wurden sie mit dem Mutationscode 01 markiert. Was wäre die Abfrage, um dies zu erreichen?

Tabelle

loadno, firstname, lastname, street, streetno, mutationcode 
load1, eric, smith, sophostreet, 42 
load1, mark, kras, downtownstreet, 10 
load1, lucy, polka, newamsterdam, 466 
load2, eric, smith, sophostreet, 43, 01 
load2, mark, kras, townstreet, 10 
load2, lucy, polka, newamsterdam, 466, 01 

freuen uns auf Ihren Rat, Mit freundlichen Grüßen,

+0

Es scheint, Ihre Spalte Header stimmen nicht mit Ihren Daten überein. Ist 'load1' /' load2' eine aktuelle Spalte in den Daten? Wenn ja, wie heißt es? – ebyrob

+0

ebyrob, dein Recht, korrigierte es. – mgo

Antwort

0

etwas wie das folgende arbeiten können, wenn Sie Ihre Tabelle nur zwei loadno Werte hat:

UPDATE r1 
SET r1.mutationcode = 1 
FROM record as r1 
join record as r2 on r2.loadno < r1.loadno 
        and r2.firstname = r1.firstname 
        and r2.lastname = r1.lastname 
WHERE r2.street != r1.street 
    or r2.streetno != r1.streetno 
    ;