Ergebnis 1 bis 3 von 3

Thema: update where contains - über 2 spalten - bring Fehlermeldung

  1. #1
    vollbotz ist offline Neuer Benutzer
    Registriert seit
    18.10.2007
    Beiträge
    22

    Standard update where contains - über 2 spalten - bring Fehlermeldung

    Hallo,

    ich möchte in einer räumlichen Abfrage 2 Spalten updaten !!

    von der Theorie sollte das gehen:


    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) = (

    Der Fehler erscheint, sobald eine Klammer hinter dem SET eingeführ wird...

    Die Unterabfrage
    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)
    läuft ohne Probleme ...

    ....finde den Fehler nit !!! Hat jemand ne idee ??

    DANKe

  2. #2
    castorp ist offline Erfahrener Benutzer
    Registriert seit
    27.06.2009
    Beiträge
    525

    Standard

    Zitat Zitat von vollbotz Beitrag anzeigen
    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
    A SQL query walks into a bar and sees two tables. He walks up to them and says 'Can I join you?'

  3. #3
    vollbotz ist offline Neuer Benutzer
    Registriert seit
    18.10.2007
    Beiträge
    22

    Standard

    ich glaub ich hab da noch nen denkfehler drin...

    Wenn ich ein Feld updaten möchte funkionierts wie folgt:

    update einzellagen_abgleich.wbk_load_lage_gis
    set str_lag_nr = A.wlg_nr
    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);

    >> Ich möchte: Update die Spalten str_lag und lag_name mit wlg_nr und wlg_name wenn sich die Geometrien der beiden Geometrien überlagern (containen)...

    Bei ersten Beispiel müsste ich ja jetzt nochmal ein CONTAINS hinten dran hängen >> dann hätte ich zwei inneinander >> wirklich nötig ??

    Irgendwie fehlt mir gerade die logik ;-) DANKE !!

Ähnliche Themen

  1. Problem Fehlermeldung bei simplem SELECT über ODBC
    Von Werner1104 im Forum externe Schnittstellen
    Antworten: 10
    Letzter Beitrag: 09.09.2010, 14:58
  2. Antworten: 2
    Letzter Beitrag: 13.04.2010, 13:00
  3. Problem Wie finde ich heraus welche Spalten von einem Update betroffen sind?
    Von Petro im Forum Trigger und Funktionen
    Antworten: 9
    Letzter Beitrag: 16.06.2009, 15:56
  4. Constraint über zwei Spalten
    Von Harald im Forum SQL
    Antworten: 4
    Letzter Beitrag: 19.01.2009, 11:01
  5. Antworten: 2
    Letzter Beitrag: 26.09.2008, 17:29

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Links: Tobias Bauer - IT- und Funkdienstleistungen   -   Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen   -   Funkforum