Wie das UPDATE einer Spalte mit einer anderen Spalte in einer anderen Tabelle? SQL-Fehler: ORA-00933: SQL-Befehl nicht korrekt beendet
Ich habe alles versucht, ich kann mir denken, konnte es aber nicht lösen dieser SQL-Fehler:
SQL-Fehler: ORA-00933: SQL-Befehl nicht korrekt beendet
Dies ist Oracle SQL.
UPDATE SALES_DATA_FAMILY_2007 A
SET A.POG_ID=B.POG_ID
FROM POG_HIERARCHY B
WHERE A.FAMILY_ID=B.FAMILY ;
Einer alternative, die ich versucht habe ist, wie unten beschrieben. Leider gibt es eine andere Fehlermeldung:
ORA-01427: single-row subquery mehr als eine Zeile
UPDATE SALES_DATA_FAMILY_2007
SET POG_ID= (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY
WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID)
WHERE EXISTS (SELECT POG_HIERARCHY.POG_ID FROM POG_HIERARCHY
WHERE SALES_DATA_FAMILY_2007.FAMILY_ID=POG_HIERARCHY.FAMILY_ID)
;
Bitte um Hilfe!!
- Die "ORA-01427: single-row subquery returns more than one row" - Fehler-Meldung besagt, dass es mehrere
pog_hierarchy
Datensätze mit der gleichenfamily_id
. Sie müssen sagen, von Oracle diepog_hierarchy
Datensatz ist derjenige, dessenpog_id
Sie wollen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie aktualisieren möchten, Zeilen aus einer Unterabfrage mehr als einen Datensatz können Sie mit Hilfe des Zusammenführen-commenad:
Versuchen Sie dies:
Dies funktioniert, wenn und nur, wenn es höchstens eine entsprechende Zeile in POD_HIERARCHY für eine bestimmte FAMILIE. Wenn es mehr als eine Zeile in POD_HIERARCHY, dann müssen Sie bestimmen, welche Zeile aus POD_HIERARCHY Sie möchten, verwenden Sie den Wert aus.