talon
Goto Top

Probleme mit SQL String - UPDATE !

Guten Morgen

Ich habe ein kleines Problem mit einem SQL String.
Zuerst die Grundlage:

Ich habe eine MS-SQL DB, in die über eine spezielle Software Daten importiert werden.
Das Problem dabei ist, das die Importschnittstelle eine feste Struktur hat.
Es ist also vorgegeben was, bzw. in welche Felder importiert wird.

Ich habe 2 relevante Tabellen (Adressen & Kunden)

In Tabelle Adressen sind 2 Felder von Bedeutung.
- KNR (Kundennummer)
- Postfach (dieses Feld wird "mißbraucht" für die Zuordnung von Mitarbeitern. Ein direkter Import des MA-Kürzels ist nicht möglich)

In Tabelle Kunden nochmals 2 Felder.
- kundennr
- Disponennt (hier muß ich das Mitarbeiterkürzel eintragen)


Ich muß nun erstmal in der Tabelle Adressen alle Datensätze finden, die im Feld Postfach eine bestimmte Nummer stehen haben.
Anschließend muß ich, anhand der ermittelten Kundennummern aus der Tabelle Adressen, die passenden Datensätze in der Tabelle Kunden finden.
Dort muß dann im Feld Disponennt ein entsprechender Wert eingetragen werden.

Ich habe schon verschiedenes versucht:


Hier meckert er schon in Zeile 1 wegen dem Komma. Ohne das Komma bleibt er in Zeile 3 bei adressen.knr stehen.

UPDATE Adressen, Kunden
SET kunden.disponennt = "Talon"
WHERE adressen.knr = kunden.kundennr
AND adressen.postfach = "1"


Auch das hier funktioniert nicht.

UPDATE Kunden
INNER JOIN Adressen
ON knr=kundennr
AND postfach="1"
SET Disponennt = "Talon"


so würde der SELECT Befehl aussehen.

SELECT Disponennt, kundennr, knr, Postfach
FROM Adressen
INNER JOIN Kunden
ON knr=kundennr
AND postfach="1"


Leider finde im Internet nichts wirklich hilfreiches was das updaten von Datensätzen angeht, wenn man mit 2 Tabellen arbeiten muß.

Ich hoffe Ihr könnt mir helfen.

Vielen dank schon mal.

Gruß

Talon

Content-ID: 33739

Url: https://administrator.de/contentid/33739

Ausgedruckt am: 18.11.2024 um 01:11 Uhr

Biber
Biber 07.06.2006 um 09:47:35 Uhr
Goto Top
Moin Talon,

sinngemäß so (ungetestet):
UPDATE Kunden
SET kunden.disponennt = "Talon"
WHERE kundennr =
(select kundennr from adressen where
adressen.knr = kunden.kundennr
AND adressen.postfach = "1")

Gruß
biber
Talon
Talon 07.06.2006 um 10:05:41 Uhr
Goto Top
Vielen Dank

Genau das war es. Ich musste es nur etwas abändern.

UPDATE kunden
SET kunden.disponent = "Talon"
WHERE kundennr =
(SELECT knr FROM adressen
WHERE kundennr = knr
AND postfach = "1")


Ich danke dir biber. Du hast mir sehr geholfen.