![]() |
Datenbank: MySQL • Version: 5 • Zugriff über: UniDac
Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Hallo Zusammen,
ich möchte ein Update machen, bei dem ich die Daten einer Tabelle und die anderer Tabellen zusammenführe. In der Tabelle AS400 möchte ich das Feld OAAGBZ bei den Datensätzen, wo das Feld OAMANR like 'SU%' erfüllt ist mit folgendem Inhalt füllen:
Delphi-Quellcode:
Dazu habe ich versucht ein Update-Statement zu schreiben, aber das bekomme ich nicht ans Laufen:
select concat(a.oaagbz,' HN.',Right(p.stkomp,3),' ', t.azabme) from as400 a
left join phstru p on p.stbgnr=a.watenr and p.tamagr=3500 left join teilestamm t on t.aztenr=p.stkomp where a.oamanr like 'SU%' and t.temagr=3500 and p.tamagr=3500 group by a.watenr
Delphi-Quellcode:
Fehlermeldung lautet:
update as400 as b
left join (select concat(a.oaagbz,' HN.',Right(p.stkomp,3),' ', t.azabme) as Bezeichnung from as400 a left join phstru p on p.stbgnr=a.watenr and p.tamagr=3500 left join teilestamm t on t.aztenr=p.stkomp where a.oamanr like 'SU%' and t.temagr=3500 and p.tamagr=3500 group by a.watenr) as t set b.oaagbz=t.Bezeichnung where b.waaunr=t.waaunr and b.waaupo=t.waaupo and b.oaagnr=t.oaagnr
Delphi-Quellcode:
Aber ich habe den Eindruck, dass ich einen grundsätzlichen Denkfehler habe...
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set b.oaagbz=t.Bezeichnung
where b.waaunr=t.waaunr and b.waaupo=t.waaupo and b.' at line 9 Kann mir jemand helfen? Vielen Dank Patrick |
AW: Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Man kann keinen Join updaten. Aber eine Tabelle mit Werten aus einem Join.
SQL-Code:
update
as400 b set b.oaagbz=t.Bezeichnung from ( <Join>) t where ... |
AW: Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Ok, ich habe es jetzt so versucht:
Delphi-Quellcode:
Aber da gefällt ihm auch noch etwas nicht:
update as400 as b
set b.oaagbz=t.Bezeichnung from (select concat(a.oaagbz,' HN.',Right(p.stkomp,3),' ', t.azabme) as Bezeichnung from as400 a left join phstru p on p.stbgnr=a.watenr and p.tamagr=3500 left join teilestamm t on t.aztenr=p.stkomp where a.oamanr like 'SU%' and t.temagr=3500 and p.tamagr=3500 group by a.watenr) as t where b.waaunr=t.waaunr and b.waaupo=t.waaupo and b.oaagnr=t.oaagnr
Delphi-Quellcode:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from
(select concat(a.oaagbz,' HN.',Right(p.stkomp,3),' ', t.azabme) as Bezeich' at line 2 |
AW: Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Hallo,
läuft denn das Select alleine? as t where b.waaunr=t.waaunr and b.waaupo=t.waaupo and b.oaagnr=t.oaagnr Ich denke, dass geht nicht. |
AW: Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Da was brauchbares bei?
![]() |
AW: Update mit Werten aus der gleichen Tabelle und anderen Tabellen
Vielen Dank für die Hilfe!
Ich habe die Query jetzt so aufgebaut:
Delphi-Quellcode:
So hat es jetzt funktioniert:
UPDATE
`table1` AS `dest`, ( SELECT * FROM `table2` WHERE `id` = x ) AS `src` SET `dest`.`col1` = `src`.`col1` WHERE `dest`.`id` = x ;
Delphi-Quellcode:
Vielen Dank
update as400 as b,
(select a.waaunr, a.waaupo, a.oaagnr, concat(a.oaagbz,' ', t.tebez1) as Bezeichnung from as400 a left join phstru p on p.stbgnr=a.watenr and p.tamagr=3500 left join teilestamm t on t.aztenr=p.stkomp where a.oamanr like 'SU%' and t.temagr=3500 and p.tamagr=3500) as t set b.oaagbz=t.Bezeichnung where b.waaunr=t.waaunr and b.waaupo=t.waaupo and b.oaagnr=t.oaagnr Patrick |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz