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-Key: 96461

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

Printed on: April 19, 2024 at 01:04 o'clock

Member: Biber
Biber Sep 09, 2008 at 15:28:48 (UTC)
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
Member: MichBro
MichBro Sep 10, 2008 at 06:14:30 (UTC)
Goto Top
Sensationell!!

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

DANKE!!!

MFG

MichBro