Mehrere Summen in einer Abfrage

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Mehrere Summen in einer Abfrage

Beitrag von zeeman78 »

Hallo,

ich habe eine Tabelle, in der Gelder eingetragen sind nach unterschiedlichen Kriterien als boolean (1/0).
Ich habe unterschiedliche Kriterien z.B. Berlin, HH, Bremen usw.

Ich würde mit folgendem Befehl herangehen:
SELECT SUM( "Betrag" ) FROM "Vertrag" WHERE "Berlin" = 1; "HH" =1, "Bremen"= 1

Was muss ich aber angeben, wenn ich die Summen der Orte einzeln in einer Abfrage ausgewiesen haben will.

Vielen Dank im Voraus.
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Mehrere Summen in einer Abfrage

Beitrag von pmoegenb »

Hast Du wirklich Spaltennamen die z. B. Berlin, HH, Bremen lauten ?
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Re: Mehrere Summen in einer Abfrage

Beitrag von zeeman78 »

Hallo

die Daten werden über ein Formular eingegeben.
Hierbei muss bei den Städten nur ein Haken gesetzt werden ob Ja oder Nein (1/0).
Es gibt nur eine bestimmte Anzahl von Städten.
Für Verbesserungsvorschläge bin ich gerne offen.

Viele Grüße
Uwe
pmoegenb
********
Beiträge: 4330
Registriert: Di, 22.06.2004 12:02
Wohnort: 71134 Aidlingen
Kontaktdaten:

Re: Mehrere Summen in einer Abfrage

Beitrag von pmoegenb »

Hallo Uwe,
für der Hilfe zu einer SQL-Abfrage wird die Struktur der Datenbank benötigt. Ein Formular, bzw. das Aussehen einer Eingabemaske hilft da wenig weiter.
Gruß

Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Mehrere Summen in einer Abfrage

Beitrag von DPunch »

Aloha

Würde wohl so oder so ähnlich aussehen

Code: Alles auswählen

SELECT
	SUM(CASE "Berlin" WHEN 1 THEN "Betrag" ELSE 0 END) AS "Berlin",
	SUM(CASE "HH" WHEN 1 THEN "Betrag" ELSE 0 END) AS "HH",
	SUM(CASE "Bremen" WHEN 1 THEN "Betrag" ELSE 0 END) AS "Bremen"
FROM
	"meineTabelle"
(Eventuell Häkchen bei "SQL-Kommando direkt ausführen" notwendig)

Bzw., wenn Deine Tabelle wirklich 1er und 0er enthält in den Städtspalten, dann noch einfacher so:

Code: Alles auswählen

SELECT
	SUM("Berlin" * "Betrag") AS "Berlin",
	SUM("HH" * "Betrag") AS "HH",
	SUM("Bremen" * "Betrag") AS "Bremen"
FROM
	"meineTabelle"
zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Mehrere Summen in einer Abfrage + Jahreseinteilung

Beitrag von zeeman78 »

Hallo Super, vielen Dank funktioniert perfekt
Ich bekomme genau das heraus was ich brauche.

Ich bekomme folgendes Ergebnis mit der Abfrage

Berlin--------HH----------Bremen
15486------547896------3356546

Besteht auch noch die Möglichkeit dies auch nahc Jahren zu trennen in einer Abfrage.
Als allererstes würde mir eine Abfrage pro Jahr einfallen und dann mit einer Union vielleicht diese zusammen zufassen (ist mir aber auch nicht gelungen trotz aller variationen)
Geht das auch in einer Abfrage?

Es sollte dann ungefähr so aussehen?

Jahr------ Berlin------HH-----------Bremen
2011------ 9900-----397412-------3329006
2012-------5586-----150484--------27540

Vielen Dank im Voraus
Barlee
******
Beiträge: 767
Registriert: Sa, 17.12.2005 12:27

Re: Mehrere Summen in einer Abfrage

Beitrag von Barlee »

Hallo zeeman78,

das ließe sich z.B. so lösen:

Code: Alles auswählen

SELECT 
	"a".*, 
	"b"."Berlin", 
	"c"."HH", 
	"d"."Bremen" 
FROM
	(SELECT DISTINCT YEAR("Datum") AS "Datum" FROM "DeineTabelle") AS "a"
LEFT JOIN
	(SELECT YEAR("Datum") AS "Datum", SUM("Berlin" * "Betrag") AS "Berlin" FROM "DeineTabelle" GROUP BY "Datum") AS "b"
	ON "a"."Datum" = "b"."Datum"
LEFT JOIN
	(SELECT YEAR("Datum") AS "Datum", SUM("HH" * "Betrag") AS "HH" FROM "DeineTabelle" GROUP BY "Datum") AS "c"
	ON "a"."Datum" = "c"."Datum"
LEFT JOIN
	(SELECT YEAR("Datum") AS "Datum", SUM("Bremen" * "Betrag") AS "Bremen" FROM "DeineTabelle" GROUP BY "Datum") AS "d"
	ON "a"."Datum" = "d"."Datum"
ORDER BY "a"."Datum"
Gruß Barlee
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Mehrere Summen in einer Abfrage + Jahreseinteilung

Beitrag von DPunch »

Servus
zeeman78 hat geschrieben:Es sollte dann ungefähr so aussehen?

Jahr------ Berlin------HH-----------Bremen
2011------ 9900-----397412-------3329006
2012-------5586-----150484--------27540
Das geht prinzipiell ganz einfach so

Code: Alles auswählen

SELECT
  YEAR("Datum") AS "Jahr",
  SUM("Berlin" * "Betrag") AS "Berlin",
  SUM("HH" * "Betrag") AS "HH",
  SUM("Bremen" * "Betrag") AS "Bremen"
FROM
  "meineTabelle"
GROUP BY
  YEAR("Datum")
ORDER BY
  YEAR("Datum") ASC
zeeman78
Beiträge: 9
Registriert: Fr, 06.01.2012 00:39

Re: Mehrere Summen in einer Abfrage

Beitrag von zeeman78 »

Vielen, Vielen Dank.

Super
Antworten