PDA

View Full Version : SQL INSERT aus JOIN



loeweadolf
20-01-06, 11:56
Ich würde gerne in SQL eine Tabelle füllen (insert) mit
Werten aus einer Join-Verbindung. Da mache ich aber irgendwas falsch.
Vielleicht kann mir einer sagen, was.




insert into BOLDIFpf
( bdstkn ,
bdidenti ,
bdnmen ,
bdbopale ,
bdarti ,
bdvere ,
bddess ,
bdgrsc ,
bdfarb ,
bdfar2 ,
bdidentib ,
bdmeter ,
bddatum ,
bdkenn )
values (
lag.lastkn ,
lag.lavgre12 ,
lag.lanmen ,
lag.labopale ,
quali ,
lag.lavere ,
lag.ladess ,
lag.lagrsc ,
lag.lafarb ,
lag.lafar2 ,
bol.bvidenti ,
bol.bvmeter ,
bol.bvdatum ,
'A' )
where (
select lag.lastkn, lag.lavgre12, lag.lanmen,
lag.labopale, substring(lag.laarti, 1, 6) as quali,
lag.lavere, lag.lades
lag.lagrsc, lag.lafarb, lag.lafar2,
bol.bvidenti, bol.bvmeter, bol.bvdatum
from lagbespf LAG
LEFT OUTER JOIN bolvsnpf BOL ON
LAG.LASTKN = BOL.bvstkn
where lafirm = 01
and lalort = 810
and lapros = 82 ) ;



Die Fehlermeldung lautet:



SQL5001 30 23 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.
SQL5001 30 24 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.
SQL5001 30 25 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.
SQL5001 30 26 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.
SQL5001 30 28 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.
SQL5001 30 29 Position 17 Qualifikationsmerkmal für Spalte oder
Tabelle LAG nicht definiert.





Ich nehme an, dass ich irgend erwas grundsätzlich falsch mache, aber was.

mfg. Ludger

Fuerchau
20-01-06, 12:33
Die Syntax lautet:

insert into filea
select .... from fileb where ...

oder

insert into filea (f1, f2, ...)
select .... from fileb where ...

Wobei eben jede Select-Spalte einer Insert-Spalte zugeordnet wird.

loeweadolf
20-01-06, 15:23
Danke für die Unterstützung.

Nachdem ich ein bißchen ausprobiert habe, habe ich jetzt ein INSERT erstellt unter Verwendung eines LEFT OUTER JOINS und ein zweites unter Verwendung eines RIGHT EXCEPTION JOINS, wobei ich NULL-Werte durch Value-Eintrag mit 0 oder *blank ersetze.


Dadurch spare ich mir ein RPG-Programm.

( war zum Üben ganz gut )


mfg. Ludger