Ergebnis 1 bis 3 von 3

Thema: probleme beim update / unterabfrage

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

    Standard probleme beim update / unterabfrage

    hi,

    ich möchte das ergebniss einer unterabfrage als updatewert nutzen.

    Problem: die unterabfrage erzeugt eine ganze liste von werten
    (was auch logisch ist)

    update einzellagen_abgleich.load_lage_alle_1
    set "LAG_NR" =
    (select el_alle."WLG_NR" FROM einzellagen_abgleich.load_lage_alle_1, einzellagen.el_alle
    WHERE contains (buffer(einzellagen.el_alle.the_geom,1), einzellagen_abgleich.load_lage_alle_1.the_geom) = TRUE);

    Wie kann ich immer nur einen Wert einfügen ??
    (Ohne eine extra Tabelle vorher mit der containsabfrage zu erzeugen..)

    Irgendwie fehlt mir hier gerade die logik...
    >> geht das nur über ein function wie z.b. loop ??

    Danke euch

  2. #2
    akretschmer ist gerade online Super-Moderator
    Registriert seit
    29.10.2006
    Ort
    Dresden
    Beiträge
    5.472

    Standard

    Zitat Zitat von vollbotz Beitrag anzeigen
    hi,

    ich möchte das ergebniss einer unterabfrage als updatewert nutzen.

    Problem: die unterabfrage erzeugt eine ganze liste von werten
    (was auch logisch ist)

    update einzellagen_abgleich.load_lage_alle_1
    set "LAG_NR" =
    (select el_alle."WLG_NR" FROM einzellagen_abgleich.load_lage_alle_1, einzellagen.el_alle
    WHERE contains (buffer(einzellagen.el_alle.the_geom,1), einzellagen_abgleich.load_lage_alle_1.the_geom) = TRUE);

    Wie kann ich immer nur einen Wert einfügen ??
    (Ohne eine extra Tabelle vorher mit der containsabfrage zu erzeugen..)

    Irgendwie fehlt mir hier gerade die logik...
    >> geht das nur über ein function wie z.b. loop ??

    Danke euch

    LOOP gibt es nicht in SQL. Wenn Du 2 Tabellen hast und in einer den Inhalt einer Spalte einer anderen haben willst (via UPDATE), dann muß Du eine Verbindung zwischen den Tabellen herstellen, damit klar ist, welche Zeile gemeint ist. Beispiel:

    Code:
    test=# select * from ziel;
     id | wert
    ----+------
      1 |
      2 |
      3 |
      4 |
      5 |
    (5 Zeilen)
    
    Zeit: 0,193 ms
    test=*# select * from quelle;
     id | wert
    ----+------
      1 |    1
      2 |    2
      3 |    3
      4 |    4
      5 |    5
    (5 Zeilen)
    
    Zeit: 0,322 ms
    test=*# update ziel set wert = (select wert from quelle);
    FEHLER:  als Ausdruck verwendete Unteranfrage ergab mehr als eine Zeile
    test=!# rollback;
    ROLLBACK
    Zeit: 0,178 ms
    test=# update ziel set wert = quelle.wert from quelle where ziel.id=quelle.id;
    UPDATE 5
    Zeit: 0,372 ms
    test=*# select * from ziel;
     id | wert
    ----+------
      1 |    1
      2 |    2
      3 |    3
      4 |    4
      5 |    5
    (5 Zeilen)
    
    Zeit: 0,319 ms
    Andreas
    --
    ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
    https://www.xing.com/profile/Andreas_Kretschmer7

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

    Standard funktioniert

    super,

    umgebaut zu:


    update einzellagen_abgleich.load_lage_alle_1
    set "LAG_NR" = el_alle."WLG_NR" FROM einzellagen.el_alle
    WHERE contains (buffer(einzellagen.el_alle.the_geom,1), einzellagen_abgleich.load_lage_alle_1.the_geom) = TRUE;

    >> funktioniert...

    ICH DANKE DIR !!!

    gruß v.

Ähnliche Themen

  1. Antworten: 2
    Letzter Beitrag: 13.04.2010, 13:00
  2. Antworten: 8
    Letzter Beitrag: 24.02.2010, 11:56
  3. Probleme beim Datenimport per copy
    Von dantro32 im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 26.11.2007, 11:29
  4. Probleme beim Compilieren von C-Funktion
    Von dayxtry im Forum Allgemeines
    Antworten: 4
    Letzter Beitrag: 17.07.2007, 21:25
  5. probleme beim installieren
    Von andré s. im Forum Installation von PostgreSQL
    Antworten: 13
    Letzter Beitrag: 22.02.2006, 23:28

Stichworte

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