Hallo,
ich habe folgendes Problem: Ich möchte ein Tabellenfeld mit der Summe aus dem zu aktualisierenden Feld und der Feldsumme einer anderen Tabelle per SQL-Abfrage aktualisieren.
Hier die Strucktur der beiden Tabellen:
Tabelle: T_SALDEN
MANDANT | KONTONUMMER | SALDO
A_FIRMA | 100 | +500,00
A_FIRMA | 200 | +300,00
B_FIRMA | 100 | +100,00
B_FIRMA | 200 | +200,00
Tabelle: T_BUCHUNGEN
MANDANT | BELEGNUMMER | KONTONUMMER | BETRAG
A_FIRMA | 111 | 100 | -50,00
A_FIRMA | 111 | 200 | +50,00
A_FIRMA | 222 | 100 | +70,00
A_FIRMA | 222 | 200 | -70,00
B_FIRMA | 111 | 100 | +15,00
B_FIRMA | 111 | 200 | -15,00
Nun möchte ich ein SQL-Kommando erstellen mit dem das Feld SALDO der Tabelle T_SALDEN mit der Summe des Felder BETRAG der Tabelle T_BUCHUNGEN zuzügl. des aktuelle Wertes des Feldes SALDO (Tabelle T_BUCHUNGEN) aktualisert wird. Als Bedinung möchte ich das Feld MANDANT (Tabelle T_SALDEN und T_BUCHUNGEN) und das Feld BELEGNUMMER (Tabelle T_BUCHUNGEN) mitgeben.
Das Ergebnis soll wie folgt aussehen wenn Datensätze von T_FIBUCHUNGEN deren Feldwert von BELEGNUMMER = 111 + 222 und MANDANT = A_FIRMA:
Als Kriterum kann/möchte ich nur MANDANT und BELEGNUMMER mitgeben, nicht KONTONUMMER
Tabelle: T_SALDEN
MANDANT | KONTONUMMER | SALDO
A_FIRMA | 100 | +520,00 --> +500 -50 +70 = +520
A_FIRMA | 200 | +280,00 --> +300 +50 -70 = +280
B_FIRMA | 100 | +100,00
B_FIRMA | 200 | +200,00
Tabelle: T_BUCHUNGEN
MANDANT | BELEGNUMMER | KONTONUMMER | BETRAG
A_FIRMA | 111 | 100 | -50,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 111 | 200 | +50,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 222 | 100 | +70,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 222 | 200 | -70,00 --> dieser Datensatz wurde verarbeitet
B_FIRMA | 111 | 100 | +15,00 --> dieser Datensatz wurde NICHT verarbeitet, weil MANDANT = B_FIRMA
B_FIRMA | 111 | 200 | -15,00 --> dieser Datensatz wurde NIHCT verarbeitet, weil MANDANT = B_FIRMA
Die Abfrage soll also in etwas so aussehen:
update T_SALDEN set SALDO = (select SALDO from T_SALDEN where MANDANT = 'A_FIRMA' ) + (select sum(BETRAG) from T_BUCHUNGEN where MANDANT = 'A_FIRMA' and BELEGNUMMER = '100')
Wie bekomme ich hier nun die Verknpfung mit der KONTONUMMER hinzu?
Ich habe auch schon mal eine View/Abfrage für den Teil recht des =-Zeichens erstellt, da bekomme ich aber immer die Fehlermeldung, dass ich eine aktualierbare Abfrage verwenden muss.
Kann mir jemeand weiterhelfen?
Danke und Gruß
piper
ich habe folgendes Problem: Ich möchte ein Tabellenfeld mit der Summe aus dem zu aktualisierenden Feld und der Feldsumme einer anderen Tabelle per SQL-Abfrage aktualisieren.
Hier die Strucktur der beiden Tabellen:
Tabelle: T_SALDEN
MANDANT | KONTONUMMER | SALDO
A_FIRMA | 100 | +500,00
A_FIRMA | 200 | +300,00
B_FIRMA | 100 | +100,00
B_FIRMA | 200 | +200,00
Tabelle: T_BUCHUNGEN
MANDANT | BELEGNUMMER | KONTONUMMER | BETRAG
A_FIRMA | 111 | 100 | -50,00
A_FIRMA | 111 | 200 | +50,00
A_FIRMA | 222 | 100 | +70,00
A_FIRMA | 222 | 200 | -70,00
B_FIRMA | 111 | 100 | +15,00
B_FIRMA | 111 | 200 | -15,00
Nun möchte ich ein SQL-Kommando erstellen mit dem das Feld SALDO der Tabelle T_SALDEN mit der Summe des Felder BETRAG der Tabelle T_BUCHUNGEN zuzügl. des aktuelle Wertes des Feldes SALDO (Tabelle T_BUCHUNGEN) aktualisert wird. Als Bedinung möchte ich das Feld MANDANT (Tabelle T_SALDEN und T_BUCHUNGEN) und das Feld BELEGNUMMER (Tabelle T_BUCHUNGEN) mitgeben.
Das Ergebnis soll wie folgt aussehen wenn Datensätze von T_FIBUCHUNGEN deren Feldwert von BELEGNUMMER = 111 + 222 und MANDANT = A_FIRMA:
Als Kriterum kann/möchte ich nur MANDANT und BELEGNUMMER mitgeben, nicht KONTONUMMER
Tabelle: T_SALDEN
MANDANT | KONTONUMMER | SALDO
A_FIRMA | 100 | +520,00 --> +500 -50 +70 = +520
A_FIRMA | 200 | +280,00 --> +300 +50 -70 = +280
B_FIRMA | 100 | +100,00
B_FIRMA | 200 | +200,00
Tabelle: T_BUCHUNGEN
MANDANT | BELEGNUMMER | KONTONUMMER | BETRAG
A_FIRMA | 111 | 100 | -50,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 111 | 200 | +50,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 222 | 100 | +70,00 --> dieser Datensatz wurde verarbeitet
A_FIRMA | 222 | 200 | -70,00 --> dieser Datensatz wurde verarbeitet
B_FIRMA | 111 | 100 | +15,00 --> dieser Datensatz wurde NICHT verarbeitet, weil MANDANT = B_FIRMA
B_FIRMA | 111 | 200 | -15,00 --> dieser Datensatz wurde NIHCT verarbeitet, weil MANDANT = B_FIRMA
Die Abfrage soll also in etwas so aussehen:
update T_SALDEN set SALDO = (select SALDO from T_SALDEN where MANDANT = 'A_FIRMA' ) + (select sum(BETRAG) from T_BUCHUNGEN where MANDANT = 'A_FIRMA' and BELEGNUMMER = '100')
Wie bekomme ich hier nun die Verknpfung mit der KONTONUMMER hinzu?
Ich habe auch schon mal eine View/Abfrage für den Teil recht des =-Zeichens erstellt, da bekomme ich aber immer die Fehlermeldung, dass ich eine aktualierbare Abfrage verwenden muss.
Kann mir jemeand weiterhelfen?
Danke und Gruß
piper
Comment