2016-03-28 1 views
0

Je cherche la meilleure méthode de serveur SQL pour comparer les données dans un tableau et marquer le champ mutation_code avec le code 01 s'il y a des différences de la charge précédente.méthode pour interroger les changements dans une seule table avec plusieurs charges de données et définir l'identifiant de mutation

Comme vous pouvez le voir il ya des différences dans le tableau pour eric et lucy donc ils ont été marqués avec le code de mutation 01. Quelle serait la requête nécessaire pour y parvenir?

Tableau

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 

hâte pour vos conseils, meilleures salutations,

+0

Il semble que votre colonne les en-têtes ne correspondent pas à vos données. Est-ce que 'load1' /' load2' est une colonne réelle dans les données? Si oui, quel est son nom? – ebyrob

+0

ebyrob, votre droite, l'a corrigé. – mgo

Répondre

0

Quelque chose comme ce qui suit peut fonctionner si votre table a seulement deux valeurs loadno:

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 
    ;