Das bewirkt, dass jene Fläche, in der ein Hausanschluss liegt berechnet wird in die Tabelle hausanschluss eingetragen wird. Allerdings als neuen Datensatz.Code:INSERT INTO hausanschluss(subcluster_nr) SELECT clusterflaeche.subcluster_nr FROM clusterflaeche, hausanschluss WHERE st_within(hausanschluss.the_geom, clusterflaeche.the_geom)
Also müsste es ein Update sein:
Nun meldet erCode:UPDATE hausanschluss SET subcluster_nr = (SELECT clusterflaeche.subcluster_nr FROM clusterflaeche, hausanschluss WHERE st_within(hausanschluss.the_geom, clusterflaeche.the_geom))
FEHLER: als Ausdruck verwendete Unteranfrage ergab mehr als eine Zeile
Wie müsste die Abfrage lauten, dass das Ergebniss der Verschneidung in den entsprechenden Datensatz eingetragen wird?
Meinst du, dass die Unterabfrage falsch ist?
Hatte das Problem schon einmal hier Beschrieben: http://www.pg-forum.de/postgis/3708-verschneidung.htmlCode:FEHLER: Syntaxfehler bei »IN« LINE 1: UPDATE hausanschluss SET subcluster_nr IN (SELECT clusterfla
Ich hatte es danach mit php gelöst. Das muss doch aber auch direkt in postgres gehen?
Geändert von karl_ha (16.12.2009 um 11:14 Uhr)
aeh .. sorry .. hab die haelfte uebersehen .. vergiss das mit dem IN
du musste ne sog. korrelierende subquery nehmen
sodass da eben genau eine zeile rauskommt ..Code:UPDATE hausanschluss AS u SET feld = ( SELECT feld FROM andere_tabelle, hausanschluss AS h WHERE h.key = u.key AND .... )
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen