0

J'ai ajouté à ma table1 nouvelle colonne (col7) existante. La structure est comme ci-dessous sur l'image. Voici l'instruction SQL qui produit la table:Insérer des valeurs d'une autre table basée sur select avec des paramètres (clés uniques)

select year, month, quater, col4, col5, col6, col7 from table1 

enter image description here

Basé sur table2, je veux mettre à jour les valeurs dans COL7 dans le tableau 1 (insérer toutes les valeurs de table2 à table1).

Ma clé unique est: année mois-quarter-col4-Col5-col6

est la structure Voici des table2: enter image description here

Je ne l'ai pas avant cette mise à jour. Pouvez-vous s'il vous plaît aider s'il vous plaît comment le faire? Merci!

+0

[UPDATE de SELECT à l'aide de SQL Server] (http://stackoverflow.com/questions/2334712/update-from-select-using-sql-server) – NEER

Répondre

1

Vous pouvez utiliser ci-dessous requête

UPDATE T1 
SET T1.Col7 = T2.Col7 
FROM table1 T1 
inner join table2 T2 on T1.Year = T2.Year AND T1.month = T2.month AND T1.quarter = T2.quarter AND T1.col4 = T2.col4 AND T1.col5= T2.col5 AND T1.col6 = T2.col6 

Reportez-vous ci-dessous lien SQL Server - inner join when updating

+0

Si vous souhaitez insérer tous les enregistrements de Table2 à Table1, vous pouvez utiliser l'insertion sélectionnez l'instruction. –

+0

Je veux mettre à jour les valeurs et aussi, si l'enregistrement est dans la table2 mais manquant dans la table 1, devrait également être inséré – 4est

1

Si vous avez record table2 mais manquant dans le tableau 1, alors vous pouvez insérer dans table1 par le code suivant, plus le code de mise à jour qui est fourni par @arpan desai, vous devez utiliser le code ci-dessous pour insérer votre enregistrement manquant

INSERT INTO TABLE1 SELECT * FROM 
(SELECT T2.year,T2.month,T2.quarter,T2.COL4,T2.COL5,T2.COL6,T2.COL7 FROM TABLE2 T2 
EXCEPT 
SELECT T1.year,T1.month,T1.quarter,T1.COL4,T1.COL5,T1.COL6,T1.COL7 FROM TABLE1 T1) M 
+0

merci! donc je vais mettre à jour tous les enregistrements et ensuite exécuter votre code – 4est

+0

S'il vous plaît voter si cela vous est utile. – balaji

+0

bien sûr, merci! – 4est