michbro
Goto Top

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

Content-ID: 96461

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

Ausgedruckt am: 26.11.2024 um 04:11 Uhr

Biber
Biber 09.09.2008 um 17:28:48 Uhr
Goto Top
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:
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
MichBro
MichBro 10.09.2008 um 08:14:30 Uhr
Goto Top
Sensationell!!

Vielen Dank Bieber das ist genau das was ich gesucht habe!!!

DANKE!!!

MFG

MichBro