Seite 1 von 1

Kumulieren in Base

Verfasst: Do 23. Okt 2014, 17:29
von PeterPeter
Hallo,

ich möchte gerne die Daten einer Tabelle mittels einer Abfrage kumulieren. Ist das in Base möglich? Die Tabelle sieht so aus:

Nr. / Wert
1 / 2
2 / 3
3 / 6

Mittels der Abfrage soll in der Spalte "Kum" wie folgt kumuliert werden:

Nr. / Wert / Kum
1 / 2 / 2
2 / 3 / 5
3 / 6 / 11

Wie geht das in Base?

Grüße, PeterPeter

Re: Kumulieren in Base

Verfasst: Do 23. Okt 2014, 20:28
von RobertG
Hallo PeterPeter,
PeterPeter hat geschrieben: Nr. / Wert
1 / 2
2 / 3
3 / 6

Mittels der Abfrage soll in der Spalte "Kum" wie folgt kumuliert werden:

Nr. / Wert / Kum
1 / 2 / 2
2 / 3 / 5
3 / 6 / 11
Davon ausgehend, dass Nr. maßgebend die Zeilennummerierung oder sonst ein eindeutiger Wert ist:

Code: Alles auswählen

SELECT "Nr.", "Wert", (SELECT SUM("Wert") FROM "Tabelle" WHERE "Nr." <= "a"."Nr.") AS "Kum" FROM "Tabelle" AS "a"
Der Select im Select nennt sich korrelierende Unterabfrage. Du greifst über den Alias "a" auf den aktuellen Datensatz der äußeren Abfrage zu. Siehe auch das Handbuch dazu.

Gruß

Robert

Re: Kumulieren in Base

Verfasst: Fr 24. Okt 2014, 13:07
von PeterPeter
Hi Robert,

vielen Dank! Nach Einarbeitung in SQL hab ich die Syntax sogar kapiert und erfolgreich angewendet. War aber zunächst nicht einfach zu verstehen. Weißt du, wieso Base nicht einfach die gleichen Funktionen wie Calc verwendet (ähnlich wie bei Mirosoft die Funktionen von Excel auch in den Abfragefeldern von Access verwendet werden können?). Die Einarbeitung in SQL ist dann doch schon mit einigen Hürden verbunden...

Viele Grüße, PeterPeter

Re: Kumulieren in Base

Verfasst: Fr 24. Okt 2014, 16:27
von RobertG
Hallo PeterPeter,
PeterPeter hat geschrieben:Weißt du, wieso Base nicht einfach die gleichen Funktionen wie Calc verwendet (ähnlich wie bei Mirosoft die Funktionen von Excel auch in den Abfragefeldern von Access verwendet werden können?).
Vorweg: Ich habe nie MS-Office und Access genutzt, deswegen hier nur eine Vermutung.
Base ist eine Benutzeroberfläche, die den Kontakt zu allen möglichen Datenbanken herstellen soll, unter anderem zu einer internen Datenbank. Dies ist zur Zeit noch die HSQLDB. Wenn die Funktionen gleich wie in Calc laufen sollten, müsste eine entsprechend unterschiedliche Umsetzung des Codes für alle möglichen Datenbanken erfolgen. Datenbanken lassen sich schließlich (fast) nur über SQL ansprechen.
Habe ich eine Datenbankoberfläche wie Access, so lege ich als Hersteller natürlich erst einmal nur Wert darauf, dass mein Produkt mit meinen Komponenten hervorragend kommunizieren soll. Da kommuniziert dann MS-Office mit Access (und der darunterliegenden Microsoft Jet Engine) auf dem Wege, dass gegebenenfalls auch Formeln aus Excel übertragbar sind, obwohl die Datenbank selbst die überhaupt nicht versteht. Dafür muss eine passende Übersetzungsschicht dazwischen gebaut werden.
MS muss sich also mit der entsprechenden (bezahlten) Entwicklerunterstützung auf diese eine Übersetzungsschicht konzentrieren.
LO müsste sich mit der entsprechenden (unbezahlten) Entwicklerunterstützung auf viele Übersetzungsschichten konzentrieren.
Angesichts der Tatsache, dass bei der Bugbearbeitung von LO-Base nur sehr wenige Leute auftauchen, die sich tatsächlich um spezielle Base-Bugs überhaupt kümmern (kannst Du an einer Hand abzählen), dürfte klar sein, woran es denn mangelt um so ein Feature zu implementieren.

Übrigens: Wenn Du einen Bericht erstellst, dann stehen auch viele Funktionen zur Verfügung, die auch in Calc üblich sind. Allerdings musst Du die Übersetzung ins Englische beachten und auch die verschiedenen Möglichkeiten testen, wie Funktionen denn eingebaut werden können.

Gruß

Robert