Summe von zwei Spalten aus zwei Tabellen
Moderator: Moderatoren
Summe von zwei Spalten aus zwei Tabellen
Hallo zusammen,
ich bin neu hier und hätte gern ein Problem gelöst.
ich habe zwei Tabellen (Konto Eingang, Konto Ausgang) mit Spalten für Konto Nummer in beiden Tabellen und je eine Spalte für Eingang bzw. Ausgang.
Nun möchte ich beide Tabellen abfragen und die Summe von Ein- und Ausgang bilden wo die Kontonummer in beiden Tabellen identisch ist.
Ich hoffe Ihr versteht mein Problem
Bis bald dann mal
smoffice :?:
ich bin neu hier und hätte gern ein Problem gelöst.
ich habe zwei Tabellen (Konto Eingang, Konto Ausgang) mit Spalten für Konto Nummer in beiden Tabellen und je eine Spalte für Eingang bzw. Ausgang.
Nun möchte ich beide Tabellen abfragen und die Summe von Ein- und Ausgang bilden wo die Kontonummer in beiden Tabellen identisch ist.
Ich hoffe Ihr versteht mein Problem
Bis bald dann mal
smoffice :?:
Hey smoffice,
und, wo ist das Problem? Genau dafür sind Abfragen da
Beide Tabellen Laden, die Felder "Konto-Nummern" in der Grafik verbinden (mit der Maus eine Verbindung ziehen) - dadurch wird die Abhängigkeit der Tabellen hergestellt.
Dann einmal ein Feld "Kontonummer", die Felder "Eingang" und "Ausgang" aus den verschiedenen Tabellen und ein neues Feld erzeugen mit der Formel
"Eingang" - "Ausgang", dem kannst du als Alias ja den Namen "Saldo" geben
Viele Grüße
Thomas
und, wo ist das Problem? Genau dafür sind Abfragen da

Beide Tabellen Laden, die Felder "Konto-Nummern" in der Grafik verbinden (mit der Maus eine Verbindung ziehen) - dadurch wird die Abhängigkeit der Tabellen hergestellt.
Dann einmal ein Feld "Kontonummer", die Felder "Eingang" und "Ausgang" aus den verschiedenen Tabellen und ein neues Feld erzeugen mit der Formel
"Eingang" - "Ausgang", dem kannst du als Alias ja den Namen "Saldo" geben

Viele Grüße
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Hallo Dieter,
Deine Angaben:
Es gibt zwei Tabellen (Konto_Eingang, Konto_Ausgang)
Eingang hat die Spalten "Konto_Nummer" und "Eingang"
Ausgang hat die Spalten "Konto_Nummer" und "Ausgang"
-wähle auf der linken Seite in Deiner DB "Abfragen" aus
-klicke auf "Abfrage in SQL Ansicht erstellen..."
-kopiere folgende Abfrage dort hinein und passe ggf noch die Schreibweisen der Tabellen-/Spaltennamen an
-klicke in der Symbolleiste oben auf "Abfrage ausführen"
Hoffe, es ist das, was Du suchst...
Gruß Barlee
Deine Angaben:
Es gibt zwei Tabellen (Konto_Eingang, Konto_Ausgang)
Eingang hat die Spalten "Konto_Nummer" und "Eingang"
Ausgang hat die Spalten "Konto_Nummer" und "Ausgang"
-wähle auf der linken Seite in Deiner DB "Abfragen" aus
-klicke auf "Abfrage in SQL Ansicht erstellen..."
-kopiere folgende Abfrage dort hinein und passe ggf noch die Schreibweisen der Tabellen-/Spaltennamen an
Code: Alles auswählen
select
a.Konto_Nummer,
b.Eingang_sum-a.Ausgang_sum as Diff_Ein_Aus
from
(select Konto_Nummer, sum(Ausgang) as Ausgang_sum from Konto_Ausgang group by Konto_Nummer) a,
(select Konto_Nummer, sum(Eingang) as Eingang_sum from Konto_Eingang group by Konto_Nummer) b
where a.Konto_Nummer = b.Konto_Nummer
Hoffe, es ist das, was Du suchst...
Gruß Barlee
Hallo Barlee,
Danke für die schnelle Reaktion.
ich habe das Statement wie folgend angepasst und erhalte dann einen Syntaxfehler, den ich direkt dahinter kopiert habe.
Dabei fällt mir auf, dass die Auswahl der Tabellen in der FROM Anweisung mit AS deklariert wird. Das habe ich Fett Markiert.
select
AUS_TAB.AUS_KTO,
EIN_TAB.EIN_SUMME-AUS_TAB.AUS_SUMME as Saldo
from
(select AUS_KTO, sum(AUS_SUMME) as Ausgang_sum from AUS_TAB group by AUS_KTO) AUS_TAB,
(select EIN_KTO, sum(EIN_SUMME) as Eingang_sum from EIN_TAB group by EIN_KTO) EIN_TAB
where EIN_TAB.EIN_KTO = AUS_TAB.AUS_KTO
SELECT
"AUS_TAB"."AUS_KTO",
"EIN_TAB"."EIN_SUMME" - "AUS_TAB"."AUS_SUMME" AS "Saldo"
FROM
( SELECT "AUS_KTO", SUM( "AUS_SUMME" ) AS "Ausgang_sum" FROM "AUS_TAB" GROUP BY "AUS_KTO" ) AS "AUS_TAB",
( SELECT "EIN_KTO", SUM( "EIN_SUMME" ) AS "Eingang_sum" FROM "EIN_TAB" GROUP BY "EIN_KTO" ) AS "EIN_TAB"
WHERE "EIN_TAB"."EIN_KTO" = "AUS_TAB"."AUS_KTO"
Viele Grüße
Dieter
Danke für die schnelle Reaktion.
ich habe das Statement wie folgend angepasst und erhalte dann einen Syntaxfehler, den ich direkt dahinter kopiert habe.
Dabei fällt mir auf, dass die Auswahl der Tabellen in der FROM Anweisung mit AS deklariert wird. Das habe ich Fett Markiert.
select
AUS_TAB.AUS_KTO,
EIN_TAB.EIN_SUMME-AUS_TAB.AUS_SUMME as Saldo
from
(select AUS_KTO, sum(AUS_SUMME) as Ausgang_sum from AUS_TAB group by AUS_KTO) AUS_TAB,
(select EIN_KTO, sum(EIN_SUMME) as Eingang_sum from EIN_TAB group by EIN_KTO) EIN_TAB
where EIN_TAB.EIN_KTO = AUS_TAB.AUS_KTO
SELECT
"AUS_TAB"."AUS_KTO",
"EIN_TAB"."EIN_SUMME" - "AUS_TAB"."AUS_SUMME" AS "Saldo"
FROM
( SELECT "AUS_KTO", SUM( "AUS_SUMME" ) AS "Ausgang_sum" FROM "AUS_TAB" GROUP BY "AUS_KTO" ) AS "AUS_TAB",
( SELECT "EIN_KTO", SUM( "EIN_SUMME" ) AS "Eingang_sum" FROM "EIN_TAB" GROUP BY "EIN_KTO" ) AS "EIN_TAB"
WHERE "EIN_TAB"."EIN_KTO" = "AUS_TAB"."AUS_KTO"
Viele Grüße
Dieter
Hallo Dieter,
... bei Deiner Abfrage war einiges durcheinander ...
Unter Beachtung Deiner Tabellennamen und Spaltenbezeichner sieht die korrekte Umsetzung meines Vorschlags folgendermaßen aus:
bzw. "ausführlich"
Zum Vergleich Deine Abfrage:
Schau Dir mal bitte an, wo Du überall die Tabellennamen Aus_Tab und Ein_Tab verwendest ... daher der Syntaxfehler.
In den Unterselects fragst Du die Tabellen Ein_Tab und Aus_Tab ab und vergibst als Alias die gleichen Namen wie sie die Tabellen haben. Das führt zu einem Problem ...
Hoffe, ich konnte helfen.
Gruß Barlee
... bei Deiner Abfrage war einiges durcheinander ...

Unter Beachtung Deiner Tabellennamen und Spaltenbezeichner sieht die korrekte Umsetzung meines Vorschlags folgendermaßen aus:
Code: Alles auswählen
select
a.Aus_Kto,
b.Eingang_sum-a.Ausgang_sum as Saldo
from
(select Aus_Kto, sum(Aus_Summe) as Ausgang_sum from Aus_Tab group by Aus_Kto) a,
(select Ein_Kto, sum(Ein_Summe) as Eingang_sum from Ein_Tab group by Ein_Kto) b
where
a.Aus_Kto = b.Ein_Kto
bzw. "ausführlich"
Code: Alles auswählen
SELECT
"a"."Aus_Kto",
"b"."Eingang_sum" - "a"."Ausgang_sum" AS "Saldo"
FROM
( SELECT "Aus_Kto", SUM( "Aus_Summe" ) AS "Ausgang_sum" FROM "Aus_Tab" GROUP BY "Aus_Kto" ) AS "a",
( SELECT "Ein_Kto", SUM( "Ein_Summe" ) AS "Eingang_sum" FROM "Ein_Tab" GROUP BY "Ein_Kto" ) AS "b"
WHERE
"a"."Aus_Kto" = "b"."Ein_Kto"
Code: Alles auswählen
SELECT
"AUS_TAB"."AUS_KTO",
"EIN_TAB"."EIN_SUMME" - "AUS_TAB"."AUS_SUMME" AS "Saldo"
FROM
( SELECT "AUS_KTO", SUM( "AUS_SUMME" ) AS "Ausgang_sum" FROM "AUS_TAB" GROUP BY "AUS_KTO" ) AS "AUS_TAB",
( SELECT "EIN_KTO", SUM( "EIN_SUMME" ) AS "Eingang_sum" FROM "EIN_TAB" GROUP BY "EIN_KTO" ) AS "EIN_TAB"
WHERE
"EIN_TAB"."EIN_KTO" = "AUS_TAB"."AUS_KTO"
In den Unterselects fragst Du die Tabellen Ein_Tab und Aus_Tab ab und vergibst als Alias die gleichen Namen wie sie die Tabellen haben. Das führt zu einem Problem ...
Hoffe, ich konnte helfen.
Gruß Barlee
Sorry Barlee, javascript:emoticon(':lol:')
Laughing
ich denke jetzt nerv ich so langsam, aber das hat nicht funktioniert. ich habe Deine Ausführliche Variante reinkopiert und erhalte folgende Fehlermeldungjavascript:emoticon(':oops:')
Embarassed
SQL-Status: S0002
Fehler-Code: -22
Table not found in statement [SELECT "a"."Aus_Kto", "b"."Eingang_sum" - "a"."Ausgang_sum" AS "Saldo" FROM ( SELECT "Aus_Kto", SUM( "Aus_Summe" ) AS "Ausgang_sum" FROM "Aus_Tab" GROUP BY "Aus_Kto" ) AS "a", ( SELECT "Ein_Kto", SUM( "Ein_Summe" ) AS "Eingang_sum" FROM "Ein_Tab" GROUP BY "Ein_Kto" ) AS "b" WHERE "a"."Aus_Kto" = "b"."Ein_Kto"]
Ich habe auch noch nicht wirklich verstanden warum du a und b bei dem ersten select verwendest. deshalb dachte ich dass da meine Tabellennamen verwndet werden aber da erhalte ich den Fehler die Tabelle existieren nicht in der Datenbank javascript:emoticon('
')
Crying or Very sad
Gruß Dieter
Laughing
ich denke jetzt nerv ich so langsam, aber das hat nicht funktioniert. ich habe Deine Ausführliche Variante reinkopiert und erhalte folgende Fehlermeldungjavascript:emoticon(':oops:')
Embarassed
SQL-Status: S0002
Fehler-Code: -22
Table not found in statement [SELECT "a"."Aus_Kto", "b"."Eingang_sum" - "a"."Ausgang_sum" AS "Saldo" FROM ( SELECT "Aus_Kto", SUM( "Aus_Summe" ) AS "Ausgang_sum" FROM "Aus_Tab" GROUP BY "Aus_Kto" ) AS "a", ( SELECT "Ein_Kto", SUM( "Ein_Summe" ) AS "Eingang_sum" FROM "Ein_Tab" GROUP BY "Ein_Kto" ) AS "b" WHERE "a"."Aus_Kto" = "b"."Ein_Kto"]
Ich habe auch noch nicht wirklich verstanden warum du a und b bei dem ersten select verwendest. deshalb dachte ich dass da meine Tabellennamen verwndet werden aber da erhalte ich den Fehler die Tabelle existieren nicht in der Datenbank javascript:emoticon('
Crying or Very sad
Gruß Dieter
Hallo Dieter,
nein, Du nervst nicht. Im Gegenteil. Ich möchte jetzt gerne mal wissen, wo es bei Dir hakt... das kriegen wir schon noch hin
Ich habe nochmals die Anweisung aus Deiner Fehlermeldung bei mir in die SQL Ansicht kopiert und konnte sie fehlerfrei ausführen. Daher vermute ich sehr stark, dass Deine Ausgangstabellen andere Bezeichnungen haben als in meiner Abfrage angenommen.
Nochmal zum Vergleich:
Deine Tabellen heißen Aus_Tab und Ein_Tab, richtig oder nicht?? Falls nicht, dann würde es einen solchen Fehler erklären und Du müsstest entweder die Tabellennamen oder die Abfrage entsprechend anpassen. BITTE AUCH AUF GROSS- UND KLEINSCHREIBUNG ACHTEN!!
Falls Deine Tabelle "aus_tab" heißt und Du fragst mit "Aus_Tab" ab, dann lässt sich der von Dir beschriebene Fehler reproduzieren.
Beispiel. Ergebnistabelle "a" besitzt die Ausgabespalten "Aus_Kto"und "Ausgang_sum"
Ein "select a.Aus_Kto" heißt also: Wähle von der Ergebnistabelle a (den Alias habe ich ja selbst vergeben) die Spalte 'Aus_Kto'
Vergibst Du nun aber als Alias einen Namen von einer bestehenden Tabelle, dann hast Du plötzlich zwei gleichnamige Tabellen und eine Abfrage ist nicht eindeutig ...
Ein wenig klarer... ??
Gruß Barlee
nein, Du nervst nicht. Im Gegenteil. Ich möchte jetzt gerne mal wissen, wo es bei Dir hakt... das kriegen wir schon noch hin
Ich habe nochmals die Anweisung aus Deiner Fehlermeldung bei mir in die SQL Ansicht kopiert und konnte sie fehlerfrei ausführen. Daher vermute ich sehr stark, dass Deine Ausgangstabellen andere Bezeichnungen haben als in meiner Abfrage angenommen.
Nochmal zum Vergleich:
Deine Tabellen heißen Aus_Tab und Ein_Tab, richtig oder nicht?? Falls nicht, dann würde es einen solchen Fehler erklären und Du müsstest entweder die Tabellennamen oder die Abfrage entsprechend anpassen. BITTE AUCH AUF GROSS- UND KLEINSCHREIBUNG ACHTEN!!
Falls Deine Tabelle "aus_tab" heißt und Du fragst mit "Aus_Tab" ab, dann lässt sich der von Dir beschriebene Fehler reproduzieren.
Naja, das ist nicht schwer. Über die beiden SELECT-Anweisungen nach dem FROM bekomme ich bestimmte Erfgebnismengen in Form von zwei Tabellen zurück. Diese Ergebnistabellen möchte ich für eine weitere Abfrage (für das erste SELECT vor FROM) nutzen und vergebe für die beiden Tabellen jeweils einen Alias über den ich diese dann anspreche.Ich habe auch noch nicht wirklich verstanden warum du a und b bei dem ersten select verwendest.
Beispiel. Ergebnistabelle "a" besitzt die Ausgabespalten "Aus_Kto"und "Ausgang_sum"
Ein "select a.Aus_Kto" heißt also: Wähle von der Ergebnistabelle a (den Alias habe ich ja selbst vergeben) die Spalte 'Aus_Kto'
Vergibst Du nun aber als Alias einen Namen von einer bestehenden Tabelle, dann hast Du plötzlich zwei gleichnamige Tabellen und eine Abfrage ist nicht eindeutig ...
Ein wenig klarer... ??
Gruß Barlee