
Zitat von
vollbotz
UPDATE einzellagen_abgleich.wbk_load_lage_gis
SET (str_lag_nr,lag_name) = (
SELECT
A.wlg_nr, A.wlg_name
FROM
einzellagen.el_alle_buffer as A,
einzellagen_abgleich.wbk_load_lage_gis as B
WHERE A.the_geom && B.the_geom
AND CONTAINS (A.the_geom, B.the_geom));
ALLERDINGS bekomm ich ein Syntax-Error:
ERROR: syntax error at or near "("
LINE 2: SET (str_lag_nr,lag_name)
Die Syntax wird von Postgres (noch?) nicht unterstützt.
Versuch es mal mit:
Code:
UPDATE einzellagen_abgleich.wbk_load_lage_gis
SET str_lag = t.wlg_nr,
lag_name = t.wlg_name
FROM (
SELECT A.wlg_nr, A.wlg_name, B.<pk_spalte>
FROM einzellagen.el_alle_buffer as A,
einzellagen_abgleich.wbk_load_lage_gis as B
WHERE A.the_geom && B.the_geom
AND CONTAINS (A.the_geom, B.the_geom)
) T Was mich allerdings wundert, dass Du keinen JOIN zwischen dem inneren SELECT und der Tabelle im UPDATE Teil hast.
Ich denke da muss noch ein
Code:
WHERE t.<pk_spalte> = einzellagen_abgleich.wbk_load_lage_gis.<pk_spalte>
mit dazu
Lesezeichen