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

Printed on: August 31, 2024 at 22:08 o'clock

2423392070
2423392070 Feb 16, 2023 at 18:08:18 (UTC)
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 Feb 16, 2023 at 19:01:15 (UTC)
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 Feb 16, 2023 updated at 23:03:02 (UTC)
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
Solution ukulele-7 Feb 17, 2023 updated at 10:15:20 (UTC)
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 Feb 18, 2023 at 05:43:52 (UTC)
Goto Top
Super klasse -