Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL-Update mit Unterabfrage (https://www.delphipraxis.net/191169-sql-update-mit-unterabfrage.html)

HolgerCW 15. Dez 2016 09:25

Datenbank: Oracle • Version: 12 • Zugriff über: ADO

SQL-Update mit Unterabfrage
 
Hallo zusammen,

ich möchte ein Update ausführen. Ich benötige dafür eine Unterabfrage. Nun ist der Datensatz nicht mit einer Spalte eindeutig indentifizierbar.

Wie könnte ich dieses Update-Statement ändern ? Wenn ich nur über die Spalte mo.AUFTRAG_ID gehen könnte würde das ja so funktionieren.

Delphi-Quellcode:
update sys.zst_2bmobil mo
 set mo.angeliefert = '1'
where mo.AUFTRAG_ID, mo.ZAEHLERNUMMER, mo.ZAEHLWERKNUMMER IN

( Select m.AUFTRAG_ID, m.ZAEHLERNUMMER, m.ZAEHLWERKNUMMER
from sys.zst_2bmobil m
left join sys.zst_lager l
on m.zaehlernummer = l.geraet
where m.zaehleraltneu=1 
and m.angeliefert is null
and m.ablesedatum >= '27.07.2016'
and m.ort <> 'Dorsten'
and l.datum_bis = '31.12.9999'
and l.lagertyp = '302')
Gruss

Holger

Devil1925 15. Dez 2016 09:33

AW: SQL-Update mit Unterabfrage
 
Eventuell so? (Ungetestet)
Code:
update sys.zst_2bmobil mo
 set mo.angeliefert = '1'
where Cast(mo.AUFTRAG_ID as Varchar(20))+'-'+Cast(mo.ZAEHLERNUMMER as Varchar(20))+'-'+ cast(mo.ZAEHLWERKNUMMER as Varchar(20)) IN

( Select Cast(m.AUFTRAG_ID as Varchar(20))+'-'+Cast(m.ZAEHLERNUMMER as Varchar(20))+'-'+ cast(m.ZAEHLWERKNUMMER as Varchar(20))
from sys.zst_2bmobil m
left join sys.zst_lager l
on m.zaehlernummer = l.geraet
where m.zaehleraltneu=1
and m.angeliefert is null
and m.ablesedatum >= '27.07.2016'
and m.ort <> 'Dorsten'
and l.datum_bis = '31.12.9999'
and l.lagertyp = '302')

Jumpy 15. Dez 2016 09:59

AW: SQL-Update mit Unterabfrage
 
Oder da Oracle vllt. einfach:

mo.AUFTRAG_ID||'_'||mo.ZAEHLERNUMMER||'_'||mo.ZAEH LWERKNUMMER

Devil1925 15. Dez 2016 10:09

AW: SQL-Update mit Unterabfrage
 
gut, ich habe es aus sicht von MSSQL gemacht, hatte danach erste gesehen, dass es Oracle ist. (ausserdem weiss ich nicht wie da die Syntax ist)

HolgerCW 15. Dez 2016 10:12

AW: SQL-Update mit Unterabfrage
 
Hey super,

nun hat es geklappt.

Die Lösung ging dann mit:

Delphi-Quellcode:
mo.AUFTRAG_ID||'_'||mo.ZAEHLERNUMMER||'_'||mo.ZAEHLWERKNUMMER
Vielen dank.

Gruss

Holger


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz