BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Abfrage mit Summen aus zwei Tabellen fehlerhaft

BASE ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit OpenOffice.org zu bearbeiten.
Antworten
pitzy
Beiträge: 58
Registriert: Do 17. Mai 2012, 11:55

Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von pitzy » Mo 1. Aug 2016, 10:51

Hallo,
Der thread "Problem beim Subtrahieren zweier Summen", wo es um die Subtraktion und SQL ging, regte mich an, erst einmal die DB nachzubauen.
Also zwei Tabellen, die interessierenden Spalten mit verschiedenen Namen, eine Abfrage mittels GUI über die Summe je einer Spalte der beiden Tabellen.
In SQL sieht es folgendermaßen aus:

Code: Alles auswählen

SELECT SUM( "Einzahlungen"."BetragE" ), SUM( "Auszahlungen"."BetragA" ) FROM "Auszahlungen", "Einzahlungen"
Siehe da, die Summen sind falsch, kurioser Weise genau doppelt so groß.

Habe entsprechend dem Wunsche aus dem o.g. thread auch noch eine Differenz gebildet, aber die erfolgt korrekt bezogen auf die falschen Summen.

Code: Alles auswählen

SELECT SUM( "Einzahlungen"."BetragE" ), SUM( "Auszahlungen"."BetragA" ), SUM( "Einzahlungen"."BetragE" ) - SUM( "Auszahlungen"."BetragA" ) "Bilanz" FROM "Auszahlungen", "Einzahlungen"
Ist dieser Bug bekannt?
(In LO gleichermaßen falsch.)
Dateianhänge
base - DB mit Summen aus 2 Tabellen.odb
falsche Summen in Abfrage über 2 Tabellen
(4.03 KiB) 297-mal heruntergeladen
win7pro / Avira / AOO 4.1.3 / LO 4.4.7.2

pitzy
Beiträge: 58
Registriert: Do 17. Mai 2012, 11:55

Re: Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von pitzy » Mo 1. Aug 2016, 17:09

Soll kein Fehler sein, weil diese beiden Beispieltabellen keine Beziehung haben.
Ich habe bei der o.g. DB noch eine Abfrage gemacht:

Code: Alles auswählen

SELECT  "Einzahlungen"."BetragE" ,  "Auszahlungen"."BetragA" FROM "Auszahlungen", "Einzahlungen"
Da zeigt sich klar, dass jeder Datensatz der einen Tabelle mit jedem Datensatz der anderen kombiniert wird. Da nur jede Tabelle 2 Datensätze hatte,
muss das Resultat der Summen eine Verdoppelung erfahren.
Damit wäre der "Rechenfehler" in meiner Vorstellung (und der anderen Betroffenen) erklärt.
Leider fand ich keinen Hinweis hierfür im Manual von LO 4.4. (oder?)
win7pro / Avira / AOO 4.1.3 / LO 4.4.7.2

nikki
Beiträge: 573
Registriert: Sa 30. Jul 2016, 14:14
Kontaktdaten:

Re: Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von nikki » Di 2. Aug 2016, 10:35

pitzy hat geschrieben:Leider fand ich keinen Hinweis hierfür im Manual von LO 4.4. (oder?)
Weshalb soll The Document Foundation, bzw. The Apache Software Foundation (es geht ja um AOO und nicht um LO) die offizielle Dokumentation der Datenbank HSQLDB wiederholen ?

Die meisten Datenbanken unterstützen den Standard ANSI-92 SQL darüber hinaus hat jeder Datenbankhersteller noch seine eigenen Schmankerl.
Gruß

--------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)

pitzy
Beiträge: 58
Registriert: Do 17. Mai 2012, 11:55

Re: Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von pitzy » Di 2. Aug 2016, 11:34

nikki hat geschrieben:
pitzy hat geschrieben:Leider fand ich keinen Hinweis hierfür im Manual von LO 4.4. (oder?)
Weshalb soll The Document Foundation, bzw. The Apache Software Foundation (es geht ja um AOO und nicht um LO) die offizielle Dokumentation der Datenbank HSQLDB wiederholen ?
Ich fordere nichts!
Bei AOO fand ich bisher kein deutsches Handbuch. Auch wenn ich mich durch englische Texte wühlen könnte, das Gefühl und die Lesegeschwindigkeit habe ich nur für deutsche. Das wird vielen und besonders älteren ähnlich gehen. Klar, das ist ein Manko. Auf der anderen Seite gibt es noch viele Sprachen, in denen man ebenfalls was intelligent rüberbringen kann und die von mir und anderen auch nicht beherrscht werden. Also konzentriere ich mich zunächst auf deutschsprachige Werke. So kam ich auf das Manual für LO.
Stimmt, war unangemessen, in diesem Forum das LO Manual zu erwähnen. Aber ich war enttäuscht, dass es dort gar keinen Hinweis gab, was bei einer Abfrage mit Tabellen in einer DB irritierend passieren könnte, wenn sie unverbunden sind. Und das Problem-Verhalten ist ja bei beiden gleich.

Wenn man kein Experte ist und AOO oder LO nutzen möchte, will man sich bei Problemen informieren können, bevor man andere in einem Forum belästigt. Das setzt gute Quellen, die eine schnelle Übersicht ermöglichen, in eigener Sprache voraus.
win7pro / Avira / AOO 4.1.3 / LO 4.4.7.2

nikki
Beiträge: 573
Registriert: Sa 30. Jul 2016, 14:14
Kontaktdaten:

Re: Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von nikki » Di 2. Aug 2016, 13:34

Hallo pitzy,
das ist schon verständlich was Du schreibst, nur übersiehst Du, dass zur Ausführung von SQL stets maßgeblich ist, was die jeweilige Datenbank unterstützt und nicht das eingesetzte Werkzeug (AOO, LO oder sonstiger DB-Manager). AOO oder LO reicht nur SQL-Befehle an die Datenbank weiter.

Fazit: Wenn man wissen möchte welche SQL-Syntax von einer Datenbank unterstützt wird, muss man auf die Website des Datenbank-Herstellers gehen und dort recherchiere. Im Falle der integrierten Datenbank HSQLDB ist es The HSQL Development Group.

Mit AOO oder LO kannst Du über BASE zu jeder Datenbank (SQL-Server, Oracle, Firebird, SQLite, Postgresql etc.) Verbindung aufnehmen, wenn ODBC- oder JDBC-Treiber zur Verfügung stehen.
Gruß

--------------------------------------------------------
Win.10 Prof. 64-bit, AOO 4.1.7, LO 6.3.4 (x64)

F3K Total
Beiträge: 1006
Registriert: Mo 1. Aug 2011, 00:03

Re: Abfrage mit Summen aus zwei Tabellen fehlerhaft

Beitrag von F3K Total » Di 2. Aug 2016, 22:01

Moin,
versuche dies:

Code: Alles auswählen

SELECT
    "SUM_E",
    "SUM_A",
    "SUM_E" - "SUM_A" AS "BILANZ"
FROM
    ( SELECT SUM( "BetragE" ) AS "SUM_E" FROM "Einzahlungen" ),
    ( SELECT SUM( "BetragA" ) AS "SUM_A" FROM "Auszahlungen" )
Ich empfehle dir, dich mit SQL zu beschäftigen.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

Antworten