SQL Abfrage Access Update einer Datenbank
Hallo,
ich habe folgendes Problem bzw. folgende Frage.
Ich habe folgende SQL Abfrage:
UPDATE Tabelle1, Kontenbrücke SET Tabelle1.KontoHausverwaltung = Kontenbrücke.[DATEV Kontonummer]
WHERE Tabelle1.KontoHausverwaltung=Kontenbrücke.[HVW Kontonummer];
Wie kann ich hier einen 2. FAll, ELSE Fall einbauen für einen Wert den es im Verlgeich nicht gibt, für diesen Fall sollen 4X0 "0000" geschrieben werden.
Danke
mfg
Micha
ich habe folgendes Problem bzw. folgende Frage.
Ich habe folgende SQL Abfrage:
UPDATE Tabelle1, Kontenbrücke SET Tabelle1.KontoHausverwaltung = Kontenbrücke.[DATEV Kontonummer]
WHERE Tabelle1.KontoHausverwaltung=Kontenbrücke.[HVW Kontonummer];
Wie kann ich hier einen 2. FAll, ELSE Fall einbauen für einen Wert den es im Verlgeich nicht gibt, für diesen Fall sollen 4X0 "0000" geschrieben werden.
Danke
mfg
Micha
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 96461
Url: https://administrator.de/contentid/96461
Ausgedruckt am: 26.11.2024 um 04:11 Uhr
2 Kommentare
Neuester Kommentar
Moin MichBro,
hmm, die sparsamste Antwort wäre sicherlich: Nutze die IIF()-Funktion oder die Switch()-Funktion in Verbindung mit einem LEFT JOIN. In etwa so:
Ergänzende (abschweifende) Antwort.
ich würde (fast) alles tun, um Updates dieser Art zu vermeiden - wegen der schwierigen Wartbarkeit.
Wenn ein UPDATE eines Feldes erfolgen soll, dann ist es doch immer ein Update, eine Änderung bezogen auf einen Default, wenn ein bestimmter Sachverhalt eintritt.
Dementsprechend würde ich in der DB den Default dieses Kontohausverwaltungsfeldes auf Default "0000" setzen für jeden neuen Satz/EINmalig alle bereits vorhandenen auf "0000" setzen und dann einen UPDATE mit WHERE durchziehen nur für die relevanten Sätze ähnlich wie Deine Lösung oben ist.
Grüße
Biber
hmm, die sparsamste Antwort wäre sicherlich: Nutze die IIF()-Funktion oder die Switch()-Funktion in Verbindung mit einem LEFT JOIN. In etwa so:
UPDATE Tabelle1 T1
LEFT JOIN Kontenbrücke kb
ON T1.KontoHausverwaltung=Kb.[HVW Kontonummer]
SET T1.KontoHausverwaltung =
IIF( IsNull(kb.[DATEV Kontonummer]),
"0000",
kb.[DATEV Kontonummer])
Ergänzende (abschweifende) Antwort.
ich würde (fast) alles tun, um Updates dieser Art zu vermeiden - wegen der schwierigen Wartbarkeit.
Wenn ein UPDATE eines Feldes erfolgen soll, dann ist es doch immer ein Update, eine Änderung bezogen auf einen Default, wenn ein bestimmter Sachverhalt eintritt.
Dementsprechend würde ich in der DB den Default dieses Kontohausverwaltungsfeldes auf Default "0000" setzen für jeden neuen Satz/EINmalig alle bereits vorhandenen auf "0000" setzen und dann einen UPDATE mit WHERE durchziehen nur für die relevanten Sätze ähnlich wie Deine Lösung oben ist.
Grüße
Biber