Hallo Zusammen
Ich habe ein kleines Problem mit einem Update-Statement. Vielleicht kann mir jemand helfen.
Ich habe zwei Tabellen:
ACCOUNT und ASSIGN
Dabei gibt es unter anderem folgende Attribute:
ACCOUNT.COMPANYFK
ACCOUNT.ASSIGNFK
ACCOUNT.ACCOUNTTYPE
ASSIGN.ID
ASSIGN.COMPANYFK
ASSIGN.NAME
Es gibt nun eine ForeignKey-Verbindung von ACCOUNT zu ASSIGN über das Attribut ACCOUNT.ASSIGNFK
Um eine grosse Menge an Daten aufzubereiten, wünscht ein Kunde, dass diese Zuweisung einmalig via DB erfolgt. Ich benötige also ein Update-Script mit folgendem Ziel:
Jedem ACCOUNT-Record mit ACCOUNTTYPE = 1 soll die ID von ASSIGN in ACCOUNT.ASSIGNFK zugefügt werden. Dabei soll der COMPANYFK in ACCOUNT gleich dem COMPANYFK in ASSIGN sein und zusätzlich nur jene ASSIGN genommen werden, welche in NAME das Wort ‚%POOL’ haben (da es pro COMPANYFK mehrere ASSIGN-Records gibt, aber nur einer mit dem NAME ‚%POOL’)
Ich habe mal so ein Statement kreiert, aber ich bekomme den Fehler ORA-00936: Ausdruck fehlt. Was mache ich da falsch?
update ACCOUNT
set ACCOUNT.ASSIGNFK =
(select (ID) from ASSIGN
where ASSIGN.NAME like '%POOL' and
where ASSIGN.COMPANYFK = ACCOUNT.COMPANYFK)
where ACCOUNT.COMPANYFK =
(select distinct(COMPANYFK) from ASSIGN
where ASSIGN.COMPANYFK = ACCOUNT.COMPANYFK)
where ACCOUNTTYPE = 1
Hat jemand eine Idee? Kann auch ein anderer Ansatz sein, muss nicht mit diesem Statement sein…
Vielen Dank
mfg
Andrea
Ich habe ein kleines Problem mit einem Update-Statement. Vielleicht kann mir jemand helfen.
Ich habe zwei Tabellen:
ACCOUNT und ASSIGN
Dabei gibt es unter anderem folgende Attribute:
ACCOUNT.COMPANYFK
ACCOUNT.ASSIGNFK
ACCOUNT.ACCOUNTTYPE
ASSIGN.ID
ASSIGN.COMPANYFK
ASSIGN.NAME
Es gibt nun eine ForeignKey-Verbindung von ACCOUNT zu ASSIGN über das Attribut ACCOUNT.ASSIGNFK
Um eine grosse Menge an Daten aufzubereiten, wünscht ein Kunde, dass diese Zuweisung einmalig via DB erfolgt. Ich benötige also ein Update-Script mit folgendem Ziel:
Jedem ACCOUNT-Record mit ACCOUNTTYPE = 1 soll die ID von ASSIGN in ACCOUNT.ASSIGNFK zugefügt werden. Dabei soll der COMPANYFK in ACCOUNT gleich dem COMPANYFK in ASSIGN sein und zusätzlich nur jene ASSIGN genommen werden, welche in NAME das Wort ‚%POOL’ haben (da es pro COMPANYFK mehrere ASSIGN-Records gibt, aber nur einer mit dem NAME ‚%POOL’)
Ich habe mal so ein Statement kreiert, aber ich bekomme den Fehler ORA-00936: Ausdruck fehlt. Was mache ich da falsch?
update ACCOUNT
set ACCOUNT.ASSIGNFK =
(select (ID) from ASSIGN
where ASSIGN.NAME like '%POOL' and
where ASSIGN.COMPANYFK = ACCOUNT.COMPANYFK)
where ACCOUNT.COMPANYFK =
(select distinct(COMPANYFK) from ASSIGN
where ASSIGN.COMPANYFK = ACCOUNT.COMPANYFK)
where ACCOUNTTYPE = 1
Hat jemand eine Idee? Kann auch ein anderer Ansatz sein, muss nicht mit diesem Statement sein…
Vielen Dank
mfg
Andrea
Comment