jhaustein
Goto Top

Access Tabelle - Inhalte vertauschen

Hallo Gemeinschaft,

habe ein access Problem

habe eine Tabelle in der Art

Res-Nummer (Auto Feld)
Kunden.Nummer
Gas
Wasser
Strom

nun ist mir beim Einfügen der Daten ein Fehler unterlaufen und bei den Gaswerte stehen kleinere Beträge als bei Strom - nun das Problem - aber nur zum Teil falsch eingegeben

nun möchte ich folgendes erreichen, dass alle Werte bei den Strom größer als Gas ist getauscht werden

hatte schon probiert es mit Excel zu machen (dakann ich es ) - mein Problem ist nur, dass wenn ich dann die Daten wieder zurück spiele, dass dann aufgrund des Auto Wertes die Res-Nummer nicht mehr die gleichen sind

Content-ID: 6007779838

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

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

2423392070
2423392070 16.02.2023 um 19:08:18 Uhr
Goto Top
Was willst du jetzt hören?
Res-Nummer ist was genau? Unique?
Warum gibt du nicht einfach die Daten richtig ein und ignorierst die falschen spätestens bei den Abfragen?
Vielleicht passt du die Struktur der Tabelle(n) oder die Datenbank an, dass du mit falschen Daten umgehen kannst.
Eine Datenbank die nur mit korrekten Daten leben kann wird dich oft vor Herausforderung stellen.
MirkoKR
MirkoKR 16.02.2023 um 20:01:15 Uhr
Goto Top
Hi
Er will sowas wie

UPDATE Gas, Strom from Tabelle WHERE Gas < Strom

und dabei aus dem gelesenen Datensatz

Gas = Strom
Strom = Gas

ersetzen.
Also ein verschachteltes Abfrage/Update Statement ...

Ohne es gerade testen zu können, stelle ich mir das etwa so vor:

UPDATE a.Gas = b.Strom, a.Strom = b.Gas from Tabelle AS a
WHERE Gas < Strom
ON JOIN
SELECT Gas, Strom FROM Tabelle AS b WHERE a.Res-Nummer = b.Res-Nummer

von der Idee sicher die richtige Richtung, ein Kollege wird sicher das passende Statement noch liefern ....
michi1983
michi1983 16.02.2023, aktualisiert am 17.02.2023 um 00:03:02 Uhr
Goto Top
Hallo,

update table_name a
inner join table_name b
on a.key = b.key
set a.Strom = b.Gas
where a.Strom > b.Gas

Vorher halt mit einem Select testen ob du die richtigen Daten bekommst.

Und bitte lerne wie man eine Tabelle zB mittels eines ERM beschreiben und darstellen kann, das würde vieles vereinfachen.

Gruß
ukulele-7
Lösung ukulele-7 17.02.2023 aktualisiert um 11:15:20 Uhr
Goto Top
Warum so kompliziert:
UPDATE tabelle
SET gas = strom,
strom = gas
WHERE gas < strom

Ein Self-Join ist gar nicht nötig. Du musst dir nur sicher sein das das auch immer Sinn ergibt und nicht falscher Werte aktualisiert werden, es gibt kein zurück...

PS: Ich bin nicht sicher ob Access die Syntax UPDATE ... FROM versteht und ich glaube selbst MSSQL akzeptiert keinen Alias für die Tabelle in UPDATE. Bei einem Join im Update gäbe es also ggf. auch noch Syntax Probleme mit den gezeigten Varianten.
jhaustein
jhaustein 18.02.2023 um 06:43:52 Uhr
Goto Top
Super klasse -