1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

Syntaxfehler (fehlender Operator)

Dieses Thema im Forum "Microsoft Access" wurde erstellt von Markus2018, 16 November 2018.

  1. Markus2018

    Markus2018 Benutzer

    Hallo,

    ich hab ein Syntaxproblem weiß aber nicht wo der Fehler liegt...

    Die Abfrage in Access SQL lautet wie folgt:

    UPDATE
    Kundennummer_Lat_Lng_Status
    SET
    Kundennummer_Lat_Lng_Status.Status = Kundennummer_ohne_Lat_Lng_Status.Status
    Kundennummer_Lat_Lng_Status.Lat = Kundennummer_ohne_Lat_Lng_Status.Lat
    Kundennummer_Lat_Lng_Status.Lng = Kundennummer_ohne_Lat_Lng_Status.Lng
    FROM
    Kundennummer_Lat_Lng_Status
    INNER JOIN Kundennummer_ohne_Lat_Lng_Status
    ON Kundennummer_Lat_Lng_Status.Kundennummer = Kundennummer_ohne_Lat_Lng_Status.Kundennummer

    Ich habe 2 Tabellen:

    Tabelle1:
    - Kundennummer_Lat_Lng_Status
    Spalten: Kundennummer, Lat, Lng, Status

    Tabelel2:
    - Kundennummer_ohne_Lat_Lng_Status
    Spalten: Kundennummer, Lat, Lng, Status, Adresse, Stadt, Plz

    Ich möchte nun die Werte aus Tabelle1 (Lat,Lng,Status) in die Tabelle2 (Lat,Lng,Status) einfügen. Die Bedingung ist dass die Kundennummer in beiden Tabellen gleich ist.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    Das UPDATE <table> impliziert schon, daß es um diese geht, keine Notwendigkeit, diese dann noch mal im FROM zu nennen.

    Code:
    test=*# create table foo(i int, val int);
    CREATE TABLE
    test=*# create table bar(i int, val int);
    CREATE TABLE
    test=*# update foo set val = bar.val from bar where foo.i=bar.i;
    UPDATE 0
    
    PostgreSQL, sollte / könnte so auch woanders gehen.
     
  3. Markus2018

    Markus2018 Benutzer

    Access fügt aber trotzdem immer z.B. bei den Spaltennamen den Tabellennamen davor ein. Das kann nicht der Fehler sein.

    Ich verstehe nicht was du mit deinem Code meinst?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Daß Deine Syntax offenbar falsch ist. Die zu updatende Tabelle mußt Du NICHT im FROM aufzählen, sie steht bereits nach dem UPDATE.
     
  5. akretschmer

    akretschmer Datenbank-Guru

    Code:
    Command:     UPDATE
    Description: update rows of a table
    Syntax:
    [ WITH [ RECURSIVE ] with_query [, ...] ]
    UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ]
        SET { column_name = { expression | DEFAULT } |
              ( column_name [, ...] ) = [ ROW ] ( { expression | DEFAULT } [, ...] ) |
              ( column_name [, ...] ) = ( sub-SELECT )
            } [, ...]
        [ FROM from_list ]
        [ WHERE condition | WHERE CURRENT OF cursor_name ]
        [ RETURNING * | output_expression [ [ AS ] output_name ] [, ...] ]
    
     
  6. Markus2018

    Markus2018 Benutzer

    Code:
    UPDATE Kundennummer_Lat_Lng_Status
    SET Status = Kundennummer_ohne_Lat_Lng_Status.Status,
    Lat = Kundennummer_ohne_Lat_Lng_Status.Lat,
    Lng = Kundennummer_ohne_Lat_Lng_Status.Lng
    WHERE Kundennummer = Kundennummer_ohne_Lat_Lng_Status.Kundennummer
    
    So würde der Code laut deiner Syntax aussehen - aber wenn ich ihn ausführe dann kommt die Meldung "Parameterwert eingeben für Kundennummer_ohne_Lat_Lng_Status.Status".

    Was mache ich den falsch?
     
  7. akretschmer

    akretschmer Datenbank-Guru

    Die Tabelle, von der die Daten kommen, ins FROM. Siehe einfach mal GENAU mein Beispiel ...
     
  8. Markus2018

    Markus2018 Benutzer

    Mit deinem Beispiel kann ich leider nichts anfangen. Selbst wenn ich den Tabellenname ändere habe ich trotzdem noch Syntaxfehler...
     
  9. akretschmer

    akretschmer Datenbank-Guru

    gut, kann sein. Ich habe PostgreSQL und kein Access oder sowas.
     
  10. Markus2018

    Markus2018 Benutzer

    Ja sorry, aber ich hab das Thema auch nicht umsonst in das Forum "Access" gepostet.
     
  11. akretschmer

    akretschmer Datenbank-Guru

  12. Markus2018

    Markus2018 Benutzer

    Hi, danke für den Link. Damit hat es nun funktioniert.

    Ich denke aber auch dass ich zum testen nächstes Mal kürzere Tabellennamen verwenden sollte die eindeutiger sind.

    gruß
    Markus
     
    akretschmer gefällt das.
  13. Markus2018

    Markus2018 Benutzer

    Beitrag kann geschlossen werden :)
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden