🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Ja/Nein - Felder spaltenweise zusammenzählen [Gelöst]

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
ATK
Beiträge: 7
Registriert: So 16. Jun 2013, 20:38

Ja/Nein - Felder spaltenweise zusammenzählen [Gelöst]

Beitrag von ATK » So 16. Jun 2013, 20:54

Hallo zusammen!

Ich bin dabei eine Datenbank für eine Statistik zu erstellen und komme bei zwei Problemen einfach nicht weiter. Es geht dabei um das spaltenweise zählen von Ja/Nein - Feldern. Die Krönung wäre, wenn ich es nach Monaten gruppiert bekommen täte, und am Jahresende eine Gesammtzahl.

Die Tabelle besteht aus einem Datum und insg. 26 Ja/Nein - Feldern... Es können in einer Zeile mehrere Haken gesetzt sein. Wie kann ich jetzt jede einzelne Spalte der Tabelle -- in Abhänigkeit vom Datum -- zusammenzählen lassen? Im Handbuch und im Forum habe ich leider keine Lösungsansatze finden können oder ich sah den Wald vor lauter Bäumen nicht. :shock:

Danke für Eure Hilfe!

Arne
Zuletzt geändert von ATK am Mi 26. Jun 2013, 20:14, insgesamt 1-mal geändert.

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von RobertG » So 16. Jun 2013, 21:34

Hallo Arne,

das Datum ist doch das, nach dem entsprechend gruppiert werden soll.

Code: Alles auswählen

SELECT DISTINCT MONTH("Datum") FROM "Tabelle"
Jetzt willst Du eine Spalte mit Ja/Nein-Feld (JN1) abhängig von dem Monat aufaddieren.

Code: Alles auswählen

SELECT COUNT("JN1") FROM "Tabelle" WHERE "JN1" = TRUE
Das zählt Dir erst einmal die Ja-Eintragungen in einer Spalte zusammen.

Code: Alles auswählen

SELECT DISTINCT MONTH("Datum") FROM "Tabelle" AS "a"
Das gibt der Tabelle einen Alias, mit dem Du auf den aktuellen Datensatz zugreifen kannst.

Code: Alles auswählen

SELECT DISTINCT MONTH("Datum"), (SELECT COUNT("JN1") FROM "Tabelle" WHERE "JN1" = TRUE AND MONTH("Datum") = MONTH("a"."Datum") ) AS "JN1" FROM "Tabelle" AS "a"
Das zeigt Dir die Spalte Spalte addiert in Abhängigkeit vom Monat an. Aber Vorsicht: Es ist bisher nur der Monat gemeint - egal in welchem Jahr.

Code: Alles auswählen

SELECT DISTINCT YEAR("Datum"),MONTH("Datum"), (SELECT COUNT("JN1") FROM "Tabelle" WHERE "JN1" = TRUE AND MONTH("Datum") = MONTH("a"."Datum") AND YEAR("Datum") = YEAR("a"."Datum") ) AS "JN1" FROM "Tabelle" AS "a"
Na ja, jetzt musst Du immer noch den Code für die korrelierende Unterabfrage insgesamt 25 Mal kopieren und an die Felder anpassen ...

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ATK
Beiträge: 7
Registriert: So 16. Jun 2013, 20:38

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von ATK » So 16. Jun 2013, 22:23

Hallo Robert!

Herzlichen Dank für die schnelle Antwort. Nach etwas längerer Überlegung habe ich es sogar mit der korrelierden Unterabfrage hinbekommen und konnte mir auch nur die Jahressumme(n) anzeigen lassen. Nun versuche ich nur noch den Zusammenhang mit der Tabellenbezeichnung "a" herzustellen...

Für das zweite Problem, das ich anfangs angesprochen habe, muss ich einen neuen Thread öffnen, da er nicht mit den "Ja/Nein-Feldern" zusammenhängt. Ich hoffe, dass Du mir dort auch durch einen kleinen Tipp weiterhelfen kannst.

Grüße
Arne

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von RobertG » So 16. Jun 2013, 22:36

Hallo Arne,

ich habe noch ein bisschen drüber nachgedacht. Das ganze geht auch ohne korrelierende Unterabfrage:

Code: Alles auswählen

SELECT YEAR( "Datum" ), MONTH( "Datum" ), SUM( CONVERT("Wdh",INTEGER) ) FROM "Tabelle1" GROUP BY YEAR( "Datum" ), MONTH( "Datum" )
... Jetzt nicht mit den vorherigen Bezeichnungen. Das Ja-Nein-Feld muss in ein INTEGER-Feld umgewandelt werden. Dann werden alle "Ja" zu einer 1 und die Summe kann gebildet werden. Mit COUNT würden alle Felder einfach zusammengezählt.

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ATK
Beiträge: 7
Registriert: So 16. Jun 2013, 20:38

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von ATK » So 16. Jun 2013, 23:00

Hallo Robert,

super!!!!! Es funktioniert! :)

COUNT brauche ich dann nicht mehr, nachdem ich ja nur alle 26 Spalten -spaltenweise- addieren möchte. Für die Jahressumme bilde ich dann einfach eine zweite Abfrage und gruppiere es nur nach Jahren, sofern es keine Möglichkeit gibt, die Summe am Ende in dieser Abfrage (monatsweise) noch anzeigen zu lassen.

Vielen, vielen Dank Robert!


Grüße
Arne

ATK
Beiträge: 7
Registriert: So 16. Jun 2013, 20:38

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von ATK » Mo 24. Jun 2013, 19:01

Robert, eine Frage hätte ich noch zu diesem Thema...

Ich überlege meine Datenbank mittels mysql mehrbenutzerfähig zu machen... Das klappt soweit auch ganz gut. Nur funktionieren die o.g. Angaben zur Summenbildung leider nicht. Ist die Syntax soviel anders? :(

Gruß
Arne

RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von RobertG » Mo 24. Jun 2013, 21:53

Hallo Arne,

wenn Du mir sagst, welche der Abfragen Du nutzt, dann will ich das gerne einmal probieren. Wenn es um
SUM( CONVERT("Wdh",INTEGER) )
geht, so stehen diese Funktionen eigentlich auch in MySQL zur Verfügung. Allerdings ist das Boolsche Feld in MySQL direkt schon ein Zahlenfeld, so dass die Umwandlung nicht notwendig ist. Bei mir klappten beide Varianten:

Code: Alles auswählen

SELECT  YEAR( `Datum` ), MONTH( `Datum` ), SUM( `Bool` ) FROM `libretest`.`Table` AS `Table` GROUP BY YEAR( `Datum` ), MONTH( `Datum` )
Unterschied zur internen Datenbank: Statt der doppelten Anführungsstriche sind es die «`» (wie immer die genannt werden).

Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

ATK
Beiträge: 7
Registriert: So 16. Jun 2013, 20:38

Re: Ja/Nein - Felder spaltenweise zusammenzählen

Beitrag von ATK » Di 25. Jun 2013, 18:25

Hallo Robert!

Du hast Recht gehabt, es funktionierte bei mySQL, wie Du es beschrieben hattest. Danke nochmals für Deine Hilfe.
Lt. Wikipedia heißt dieser kurze Strich "Backtick" oder "Backquote" (rückwärts geneigtes Hochkomma), wusste ich auch nicht. Jetzt sind wir schlauer. ;)

Gruß
Arne


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten