Programmieren - alles kontrollieren 4.934 Themen, 20.613 Beiträge

Saldo in einer SQL Abfrage

Anwender / 21 Antworten / Flachansicht Nickles

Hi, ich suche wiedermal Hilfe zu einer SQL Abfrage.
Ich habe eine Tabelle mit einer Spalte "Einnahmen" und einer Spalte "Ausgaben". Nun möchte ich eine dritte Spalte mit dem errechneten Saldo je Zeile. Ist das möglich?

mfg Anwender

bei Antwort benachrichtigen
d-oli Anwender „Für den Saldo des ersten Datensatzes zu berechnen ist das ok. Aber für alle...“
Optionen

Hmmm ... könnte es sein, dass die Tabelle immer nur eine Zeile haben soll?
In diesem Fall würde das so funktionieren:

   -- Datensatz1 Ein 1023.05 Aus 23.05 Saldo 1000.00
   insert into t_saldo( ein, aus ) values( 1023.05, 23.05 ); commit;

   -- Datensatz2 Ein 54.00 Saldo ????.??
   update t_saldo set ein = ein + 54.00; commit;
   update t_saldo set saldo = ein - aus; commit;

   -- Datensatz3 Aus 12.35 Saldo ????.??
   update t_saldo set aus = aus + 12.35; commit;
   update t_saldo set saldo = ein - aus; commit;

   -- Datensatz4 Aus 231.90 Saldo ????.??
   update t_saldo set aus = aus + 231.90; commit;
   update t_saldo set saldo = ein - aus; commit;

Andererseits könntest Du auch mit der Funktion SUM() arbeiten um damit den Datengrid zu füllen (siehe auch vorangehende angepasste Antwort betreffend VBA):

SQL>
   -- Datensatz1 Ein 1023.05 Aus 23.05 Saldo 1000.00
   insert into t_saldo( ein, aus ) values( 1023.05, 23.05 ); commit;

   -- Datensatz2 Ein 54.00 Saldo ????.??
   insert into t_saldo( ein, aus ) values( 54.00, 0 ); commit;

   -- Datensatz3 Aus 12.35 Saldo ????.??
   insert into t_saldo( ein, aus ) values( 0, 12.35 ); commit;

   -- Datensatz4 Aus 231.90 Saldo ????.??
   insert into t_saldo( ein, aus ) values( 0, 231.90 ); commit;

VBA>
   Me.ListeSaldo.RowSource = "SELECT SUM( ein ), SUM( aus ) FROM tSaldo"
   Me.ListeSaldo.Requery


d-oli

Konstruktive Kritik zeichnet sich dadurch aus, dass sie höflich, nützlich und sachlich ist.
bei Antwort benachrichtigen