# SQL: Update befehl mit Inhalt aus anderer Tabelle



## ChiLLa_DeluXe (6. Dezember 2007)

hallo zusammen, 
ich habe hier bei meinem SQL Quelltext folgendes Problem: die Felder kommen aus 2 Tabellen, ein mal tab_standort und ressourcen_technik. Das ist soweit erst einmal eine normale Datenbankabfrage. Mit dieser Selection möchte ich aber das Feld S.stationsname, das in meiner Selection nicht aufgeführt ist, aber bereits erstellt ist, mit dem Inhalt aus dem Feld T.stationsname füllen. Ich bekomme es aber nicht hin die SQL so umzuschreiben, dass aus meiner Selection eine Updatefunktion wird. Es soll weiterhin nur der aktuelle Datensatz, mit dem max-Datum aus dem Feld st_von aktualisiert werden. für jede Fabriknummer sind mehrere Datensätze vorhanden, da die Geräte unterschiedliche standorte haben. Ich weiß nicht, ob ich mich klar ausgedrückt habe. ich hoffe ihr versteht mein Problem und könnt mir helfen. Kurz gesagt, sollte ich glaub ich noch sagen, dass diese ganze selection einfach als Updatefunktion funktionieren soll 


Vielen Dank schonmal für eure hilfe. 
Gruß Patrick

Hier ist noch die SQL:

SELECT T.stationsname, S.fabriknr, sysname, st_von, st_angelegtvon
FROM tab_standort S, ressourcen_technik T
WHERE S.fabriknr = '12345'
AND S.fabriknr = T.fabriknr
AND st_von = ANY (select max(st_von)
FROM tab_standort
WHERE fabriknr = '12345')


----------



## h1tm4n (9. Dezember 2007)

Ich verstehe leider nicht was die Tabellen bedeuten und daher die SQL Anweisung auch nicht. Du solltest anführen welche Spalte in welcher Tabelle drinnen ist, das ist mir nämlich auch nicht ganz klar. Ach ja und das Problem verstehe ich auch nicht. :suspekt:

Mir kommt es aber so vor, dass du ein join in einem update statement machen willst. Dazu findest du hier mehr: http://www.sql-und-xml.de/sql-tutorial/update-aktualisieren-der-zeilen.html

Ach ja und welches Datenbanksystem verwendest du? Die Syntax ist bei manchen nämlich nicht standardkonform.


----------



## ChiLLa_DeluXe (10. Dezember 2007)

h1tm4n hat gesagt.:


> Ich verstehe leider nicht was die Tabellen bedeuten und daher die SQL Anweisung auch nicht. Du solltest anführen welche Spalte in welcher Tabelle drinnen ist, das ist mir nämlich auch nicht ganz klar. Ach ja und das Problem verstehe ich auch nicht. :suspekt:
> 
> Ach ja und welches Datenbanksystem verwendest du? Die Syntax ist bei manchen nämlich nicht standardkonform.



benutze Informix...
ist nach der Syntax so, wie ANSI SQL denke ich..

wenn das soweit funktioniert, wie das in deinem link steht, dann wär das cool =) werde das morgen direkt mal auffer arbeit austesten... nur ich verstehe diesen ON-Befehl darin nicht und finde auch nichts in sql in 21 tagen... 

Vielen dank
Patrick


----------



## h1tm4n (11. Dezember 2007)

Ich habe noch nie mit Informix gearbeitet und weiß daher nicht wie weit dieses Datenbanksystem ANSI konform ist. Ich würde es einmal mit der ANSI Syntax probieren.

@ON-Befehl: ON ist kein Befehl sonder gehört zum Syntax eines JOINs seit dem SQL-Standard von 1992 (SQL92). Also zB: from a JOIN b ON a.id=b.aid.


----------

