Ich habe zwei Tabellen ersetzen:Wie einige Zeilen in einer SELECT-Abfrage von einer anderen SELECT
T1:
ID Department ATTRIBUTES TEAM
--- ---------- ---------- ------
1 R&D Dress_Code NULL
2 R&D Dress_Code Web
3 R&D Food System
4 R&D Food NULL
5 R&D Color NULL
6 Marketing Food System
T2:
ID VAL
--- ----------
1 Smart
2 Casual
3 Beef
4 Chicken
5 Green
6 Fish
Der Zweck T1 ist alles zu zeigen, die Abteilung Attribute.
Wenn das TEAM null ist, ist es für alle in dieser Abteilung. Manchmal hat ein Team spezielle Einstellungen, die die generischen Einstellungen überschreiben.
Zum Beispiel möchte ich in R die Einstellungen als ‚Web‘ Team bekommen & D.
kann ich schreiben:
SELECT T1.DEPARTMENT, T1.ATTRIBUTES, T1.TEAM, T2.VAL
FROM T1
LEFT JOIN T2 ON T1.ID = T2.ID
WHERE T1.DEPARTMENT = 'R&D' AND T1.TEAM = 'Web'
Dieser Datensatz zeigen wird, die besagt, Kleiderordnung ist leger .
Aber ich will das Ergebnis sein:
ATTRIBUTES VAL
---------- ------
Dress_Code Casual
Food Chicken
Color Green
Ähnliches gilt für das 'System' Team in R & D, wäre das Ergebnis Kleiderordnung, Rindfleisch und grüne Farbe.
Ich denke zuerst wählen Sie alle R & D Ergebnisse und ersetzen Sie dann die Zeilen mit den oben ausgewählten Ergebnissen.
Ich muss dies als eine gespeicherte Prozedur schreiben.
Jede Hilfe wird sehr geschätzt!
Können Sie die Logik der Übereinstimmung aufschreiben? Aufgrund der beiden Tabellen, die Sie geschrieben haben, kann ich nicht nachvollziehen, warum "Food-Attribute" mit "Chicken-Val" und nicht mit "Casual-Val" oder "Green-Val" übereinstimmen muss. – DVT
Geben Sie Maxrecusion auch in Ihrem CTE an, um die Selbstschleife zu rekursiv zu machen. Das Maximum ist 32767 Standard ist 0 und wenn Sie nicht wissen, wie viel Ebene Sie auf Rekursion haben müssen, geben Sie 0 an. –
@DVT Das Problem, das ich zu lösen versuchte, betrifft auch andere Zeilen und Spalten. Ich habe es wie gezeigt in T1 und T2 vereinfacht (obwohl es aussieht, als könnte ich sie einfach in eine einzige Tabelle setzen, kann ich das mit meinen Originaltabellen nicht machen). In diesem Fall stimme ich mit T1.ID = T2.ID überein. – Zelurd