Announcement

Collapse
No announcement yet.

Tabellenfeld aktualisieren mit Summe aus bisher. Feldwert und Summe einer anderen Tab

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabellenfeld aktualisieren mit Summe aus bisher. Feldwert und Summe einer anderen Tab

    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

  • #2
    Willkommen im Forum!
    Du musst Deinen Subselects einen Alias verpassen und kannst die Spalten via Alias dann an anderer Stelle wiederverwenden als Referenz oder Summenfeld oder was auch immer.
    Das Stichwort für Netzrecherche ist korreliertes Update oder für mehr Treffer correlated update ggf noch Dein DB System mit angeben.

    Ob das tatsächlich mit MS ACCESS geht, weiß ich nicht sicher, kann aber gut sein.
    Gruß, defo

    Comment

    Working...
    X