BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice 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 LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

[gelöst] Berechnungen im Bericht

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
NF-Albrecht
! Supporter - Spende !
Beiträge: 13
Registriert: Mo 25. Jul 2022, 17:00

[gelöst] Berechnungen im Bericht

Beitrag von NF-Albrecht » Mo 25. Jul 2022, 17:13

Ich verwalte einen Verein und habe eine Base Tabelle erstellt mit allen Daten der Mitglieder.
In einer Abfrage habe ich das Alter der Mitglieder ermittelt, dieses wird auch im Bericht angezeigt.
Nun möchte ich im Berichtsfuß das Durchschnittsalter berechnen. Das bekomme ich nicht hin.
Im Berichtsfuß habe ich den "ZählerBericht" eingebaut. Wenn ich die Summe des Alters über den
Bericht bilde und durch den "ZählerBericht" teile, kommt kein Ergebnis. Wie muss ich das denn formulieren,
dass das klappt?

Gruß

NF-Albrecht
Zuletzt geändert von NF-Albrecht am Mi 27. Jul 2022, 09:06, insgesamt 1-mal geändert.

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnungen im Bericht

Beitrag von RobertG » Di 26. Jul 2022, 08:07

Alles was Du vor Ausführung des Berichtes in einer Abfrage/Ansicht erledigen kannst erledige dort. Das bedeutet: Alter aufsummieren und durch die Anzahl teilen ist besser etwas für die Abfrage als für die Formeln im Bericht.

Wenn beide einzelnen Inhalte wie [SummeAlter] und [Zähler] bei Dir im Berichtsfuß erscheinen, dann müsste über den Formeleditor auch die Rechnung [SummeAlter]/[Zähler] möglich sein. Ohne ein entsprechendes Beispiel ist das schlecht zu sagen.
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

NF-Albrecht
! Supporter - Spende !
Beiträge: 13
Registriert: Mo 25. Jul 2022, 17:00

Re: Berechnungen im Bericht

Beitrag von NF-Albrecht » Di 26. Jul 2022, 10:12

Hallo RobertG,

vielen Dank, leider habe ich nicht so eine große Erfahrung mit Funktionen in der Abfrage. Ich habe folgendes gemacht:

SELECT COUNT( "Nachname" ), "Vorname", "Geburtstag", "Eintritt", SUM( DATEDIFF( 'yy', "Geburtstag", CURDATE( ) ) ) AS "Alter" FROM "Adressenliste" WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL ORDER BY COUNT( "Nachname" ) ASC, "Vorname" ASC

aber das funktioniert nicht.
Kannst Du mir sagen, was verkehrt ist?

Vielen Dank

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnungen im Bericht

Beitrag von RobertG » Di 26. Jul 2022, 12:32

Hallo NF-Albrecht,

Du hast in der Abfrage Funktionen und einzelne Felder gemischt. Die Felder, die Du nicht mit einer Funktion versiehst, müssten aber gruppiert werden.

Code: Alles auswählen

SELECT "Nachname", "Vorname", "Geburtstag", "Eintritt", DATEDIFF( 'yy', "Geburtstag", CURDATE( ) )  AS "Alter" 
FROM "Adressenliste" 
WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL 
ORDER BY "Nachname" ASC, "Vorname" ASC
Dies ist Deine ursprüngliche Abfrage. Ich gehe einmal, wie Du, davon aus, dass "Nachname" nie leer ist, ebenso wenig der "Geburtstag".

Code: Alles auswählen

SELECT COUNT( "Nachname") 
FROM "Adressenliste" 
WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL
Dies ergibt die Anzahl der Datensätze.

Code: Alles auswählen

SELECT SUM(DATEDIFF( 'yy', "Geburtstag", CURDATE( ) )) 
FROM "Adressenliste" 
WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL
Dies gibt die "Alterssumme"

Code: Alles auswählen

SELECT SUM(DATEDIFF( 'yy', "Geburtstag", CURDATE( ) ))/COUNT( "Nachname") 
FROM "Adressenliste" 
WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL
Dies ist der Altersschnitt.

Code: Alles auswählen

SELECT "Nachname", "Vorname", "Geburtstag", "Eintritt", DATEDIFF( 'yy', "Geburtstag", CURDATE( ) )  AS "Alter",
(SELECT SUM(DATEDIFF( 'yy', "Geburtstag", CURDATE( ) ))/COUNT( "Nachname") 
  FROM "Adressenliste" 
  WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL) AS "Altersschnitt"
FROM "Adressenliste" 
WHERE "Eintritt" IS NOT NULL AND "Gast" IS NULL AND "ausgetreten" IS NULL AND "verstorben" IS NULL 
ORDER BY "Nachname" ASC, "Vorname" ASC
Und das ist der Altersschnitt in der ursprünglichen Abfrage - als Unterabfrage.

Du gehst beim Alter übrigens nicht vom tatsächlichen Alter sondern von dem Alter aus, das eine Person in dem betreffenden Jahr erreicht. Das ist beim Sport das normale Vorgehen um Altersklasse einzuteilen. Ich laufe in "M65" seit dem Jahr, in dem ich 65 Jahre alt geworden bin.

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

NF-Albrecht
! Supporter - Spende !
Beiträge: 13
Registriert: Mo 25. Jul 2022, 17:00

Re: Berechnungen im Bericht

Beitrag von NF-Albrecht » Di 26. Jul 2022, 14:04

Hallo RobertG,

das ist logisch und verstehe auch ich. Das bei mir ermittelte Alter reicht
für diese Aufgabe aus.
Vielen Dank für die Lösungsvorschläge, da kann ich mir ja das passende
aussuchen. Kann ich denn auch unterschiedliche Abfragen in einem Bericht
unterbringen? Ansonsten müßte ich das ja mit Unterabfragen, wie Du das im
letzten Ausdruck gemacht hast. Dann taucht der Altersschnitt bei jedem
Datensatz auf, den muss ich ja nicht in die Tabelle bringen, sondern nur als
Datenfeld im Berichtsfuß. Hab ich das so richtig verstanden?

Viele Grüße aus Nordfriesland von

NF-Albrecht

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnungen im Bericht

Beitrag von RobertG » Di 26. Jul 2022, 16:22

Hallo NF-Albrecht,

grundsätzlich gilt: ein Bericht - eine Datenquelle. Mit Ausnahme von Diagrammen ist keine weitere Dateneinbindung daneben möglich. Es gibt also nicht, wie bei Formularen, so etwas wie Unterformulare.

Ich packe für Berichte alles in eine Abfrage, lieber noch in eine Tabellenansicht (View). Da der berechnete Mittelwert ja überall gleich ist lasse ich den natürlich nicht in dem Bereich "Detail" erscheinen. Da stehen bei Dir die restlichen Daten für die einzelnen Personen. Der Mittelwert könnte also im Berichtsfuß oder im Berichtskopf stehen.

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

NF-Albrecht
! Supporter - Spende !
Beiträge: 13
Registriert: Mo 25. Jul 2022, 17:00

Re: Berechnungen im Bericht

Beitrag von NF-Albrecht » Di 26. Jul 2022, 16:43

Hallo Robert,

danke für Deine Hilfe, das war sehr informativ für mich.
Damit ist meine Frage voll und ganz beantwortet.
Jetzt noch eine Frage: Wo kann ich meinen Beitrag als "erledigt" kennzeichnen?

Gruß

Albrecht

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Berechnungen im Bericht

Beitrag von RobertG » Di 26. Jul 2022, 18:17

Hallo Albrecht,

gehe in Deinen ersten Beitrag. Der wird ja in der Übersicht angezeigt. Dort schreibst Du dann in den Betreff am Anfang [gelöst] oder so ähnlich.

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

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten