2017-09-15 5 views
0

Ich habe versucht, herauszufinden, wie Sie eine SQL-Abfrage erstellen, um die Haupttabelle zu aktualisieren, wenn die Werte aus 2 verschiedenen Tabellen vorhanden sind?SQL - Wie UpdateMain-Tabelle, wenn die Werte aus 2 verschiedenen Tabellen vorhanden sind?

Beispiel:

Table1 (Main) 
Employee Number 
Name 
First Name 
Document Name 
Filename 
Original fileName 
DL_Status 

Table 2 (list table) 
Employee Number 
Document Name 
Original Filename 

Table 3(DIR list) 
Original fileName 
created 
extension file name 

Ausgang: die DL_Status sollte als „erledigt“ markiert und Original Dateiname wird nur von table2 Einträgen gefüllt werden, wenn der ursprüngliche Dateinamen aus der Tabelle 3 gibt es?

+3

zeigen Sie einige Daten, die Ihre Logik erklärt. Deine Frage ist mir nicht klar. –

+0

Vielleicht auch in Betracht ziehen, diese Ebene der Datenredundanz loszuwerden – Magisch

+0

Wir sehen zwei Fragezeichen, aber was genau ist Ihre Frage? – Sami

Antwort

0

Sie können Join auf Tabelle2 und Tabelle3 anwenden und dann ein Skript schreiben, um die Daten in der Haupttabelle zu aktualisieren. Hinweis: Wenn die Daten eindeutig erwähnt werden, ist die Antwort spezifischer.

0

versuchen, etwas wie folgt aus:

update table1 
set dl_status = a.dl_status, 
Original_Filename =a.Original_Filename 
from 
(select t2.Employee Number, 'Completed' as dl_status,t2.Original_Filename 
from table2 t2,table3 t3 
where t2.Original_Filename= t3.Original_Filename) a 
where a.Employee Number = table1.Employee Number 
0

Wahrscheinlich

UPDATE m 
SET [DL_Status] ='Completed', 
    [Original fileName] = f.[Original fileName] 
FROM [Main] m 
JOIN [list table] l ON l.[Employee Number] = m.[Employee Number] AND l.[Document Name] = m.[Document Name] 
JOIN [DIR list] f ON l.[Original fileName] = f.[Original fileName] 
-- optionally 
WHERE m.[DL_Status] <> 'Completed' OR m.[Original fileName] <> f.[Original fileName] 
Verwandte Themen