Gleiche Inhalte summieren

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Neuling77
*
Beiträge: 16
Registriert: So, 31.08.2008 14:11

Gleiche Inhalte summieren

Beitrag von Neuling77 »

Ich hätt da gern mal noch ne Frage. Für meine Tafel-Kundendatenbank habe ich eine Abfrage erstellt, die die Haushaltsgröße eines Kunden ausgibt also "KundenID", "Personenzahl"). Nun möchte ich eine Aufstellung erzeugen, die mir ausgibt, wie große Haushalte wie häufig vorkommen (etwa "Personenzahl", "Häufigkeit"), wobei "Häufigkeit" eben die Summen gleicher Zelleninhalte von "Personenzahl" ausgibt. Über COUNT bekomme ich logischerweise nur die Summe der Datensätze angezeigt. Über Tipps würde ih mich sehr freuen.
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Gleiche Inhalte summieren

Beitrag von Barlee »

Hallo Neuling77,
Über COUNT bekomme ich logischerweise nur die Summe der Datensätze angezeigt.
Naja, die möchtest Du in gewisser Weise ja auch haben. Nämlich gruppiert nach Personenzahl
Somit solltest Du mit folgendem Code Deinem Ziel näher kommen.

Code: Alles auswählen

SELECT
"Häufigkeit",
COUNT("Häufigkeit") AS "Anzahl"
FROM [Deine Tabelle]
GROUP BY "Häufigkeit"
Gruß Barlee
Neuling77
*
Beiträge: 16
Registriert: So, 31.08.2008 14:11

Re: Gleiche Inhalte summieren

Beitrag von Neuling77 »

Vielen Dank, Barlee!
Ich bin immer wieder erstaunt, wie man mit einfachen Mittel der Lösung nahe kommt - vorausgesetzt man hat Ahnung von der Materie.

Ich habs nun so gemacht (Deinen Vorschlag einfach nur umgedreht):

Code: Alles auswählen

SELECT "Summe_Personen",
COUNT("Summe_Personen") AS "Häufigkeit"
FROM "Summierung Personenzahl im Haushalt"
GROUP BY "Summe_Personen" ORDER BY "Summe_Personen"
Et voila... es klappt!

Dummerweise - und das hatte ich vergessen zu erwähnen - ist das noch nicht ganz meine Lösung. Hinter "Kunden"."Kunde" = 1 verbirgt sich in der Kundentabelle bei mir nämlich ein Häkchen, das zurzeit aktive Kunden kennzeichnet (im Unterschied zu denjenigen, die zwar schon registriert, aber noch auf einer Warteliste stehen). Nun möchte ich mit der angefragten Abfrage meinen Sortierern und Ausgeberinnen Zahlen an die Hand geben, mit deren Hilfe sie die wöchentliche Ausgabe leichter handhaben können. Daher kann ich in der angefragten Tabelle nur aktive Kunden summiert gebrauchen.

Zu diesem Zweck habe ich dann einfach den Code so erweitert:

Code: Alles auswählen

SELECT "Summierung Personenzahl im Haushalt"."Summe_Personen",
COUNT("Summierung Personenzahl im Haushalt"."Summe_Personen") AS "Häufigkeit"
FROM "Summierung Personenzahl im Haushalt", "Kunden"
WHERE "Kunden"."Kunde" > 0
GROUP BY "Summierung Personenzahl im Haushalt"."Summe_Personen" ORDER BY "Summe_Personen"
Jetzt kriege ich aber schwindelerregende Zahlen bei "Häufigkeit" geliefert. Welche weiteren einschränkenden Bedingungen muss ich setzen, um mich wieder aufs Normalmaß zu bringen?

(Und wo gibts eigentlich Fortbildungen in ooo base?)
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Gleiche Inhalte summieren

Beitrag von Barlee »

Hallo Neuling77,

welchen Datentyp verwendest Du für "Kunden"."Kunde"? Ich nehme an BOOLEAN. Dafür spräche:
Hinter "Kunden"."Kunde" = 1 verbirgt sich in der Kundentabelle bei mir nämlich ein Häkchen, das zurzeit aktive Kunden kennzeichnet
Dein Code scheint soweit OK zu sein. Daher vermute ich den Fehler an anderer Stelle.
Kannst Du einmal ein Beispiel für die schwindelerregenden Zahlen bringen?

Gruß Barlee
Neuling77
*
Beiträge: 16
Registriert: So, 31.08.2008 14:11

Re: Gleiche Inhalte summieren

Beitrag von Neuling77 »

Barlee hat geschrieben:Hallo Neuling77,

welchen Datentyp verwendest Du für "Kunden"."Kunde"? Ich nehme an BOOLEAN. Dafür spräche:
Hinter "Kunden"."Kunde" = 1 verbirgt sich in der Kundentabelle bei mir nämlich ein Häkchen, das zurzeit aktive Kunden kennzeichnet
Dein Code scheint soweit OK zu sein. Daher vermute ich den Fehler an anderer Stelle.
Kannst Du einmal ein Beispiel für die schwindelerregenden Zahlen bringen?

Gruß Barlee
Hallo Barlee,

Du hast Recht, mein "Kunde" ist eine BOOLEAN-Spalte.

Nunja, während meine realistische Abfrage folgende Ergebnisse liefert:
1 - 33
2 - 34
3 - 16
4 - 11
5 - 6
6 - 3
7 - 1

kriege ich mit der veränderten Abfrage folgende Werte:
1 - 3432
2 - 3536
3 - 1664
4 - 1144
5 - 624
6 - 312
7 - 104

wobei mir gerade auffällt, dass 104*3=312; 104*6=624; 104*11=1144 usw ist, d.h. meine Abfrage multipliziert in dieser Form nur 104 (die reale Summe von Kunden) mit den echten Ergebnissen aus Spalte zwei (den Häufigkeiten).


Ok, gelöst: Es fehlte die Beziehung der Tabellen, also die Gleichheitsaussage im WHERE-Bereich.

Danke, Barlee!
Antworten