Abfragen zusammenführen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

ckoring
Beiträge: 5
Registriert: Mo, 16.05.2011 21:34

Abfragen zusammenführen

Beitrag von ckoring »

Hallo,

nach dem ich nun schon eine Weile nach einer Lösung gesucht habe und bisher eher erfolglos war, nun mein Versuch etwas Hilfestellung von den Experten zu bekommen.

Ich möchte eine Abfrage aus drei Teilen zusammenstellen, einzeln für sich klappt das auch wie gedacht, wie ich das in EINE Abfrage bekomme ist mir allerdings weiter schleierhaft. Hier die drei Abfragen:

Code: Alles auswählen

SELECT "KategorieName", SUM( "TeilbelegSumme" )
FROM "tmpTeilbelege"
GROUP BY "KategorieName"


SELECT "KategorieName", SUM( "TeilbelegSumme" )
FROM "tmpTeilbelege"
WHERE "KaeuferID" = 0
GROUP BY "KategorieName"


SELECT "KategorieName", SUM( "TeilbelegSumme" )
FROM "tmpTeilbelege"
WHERE "KaeuferID" = 1
GROUP BY "KategorieName"
Wie man sieht unterscheidet sich die Abfragebn nur durch die WHERE-Bedingung. Wäre dankbar für jeden Hinweis wie ich diese drei Abfragen zu einer zusammenführen kann.

schönen Abend noch
Christian
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Abfragen zusammenführen

Beitrag von komma4 »

Willkommen im Forum.
ckoring hat geschrieben: wie ich das in EINE Abfrage bekomme ist mir allerdings weiter schleierhaft.

Der Sinn erschliesst sich mir nicht...

Hilft Dir das vielleicht weiter?

Code: Alles auswählen

SELECT "kundenid", SUM("zahlung") FROM "tab_kunde_zahlung" WHERE "kundenid" IN (1,2) GROUP BY "kundenid"
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
ckoring
Beiträge: 5
Registriert: Mo, 16.05.2011 21:34

Re: Abfragen zusammenführen

Beitrag von ckoring »

Hallo komma4,

sorry, das waren wohl etwas zu wenig Informationen für eine Antwort die mir hilft.

Also, ich hab eine Tabelle mit einer Vielzahl von Einträgen und will mir über eine Abfrage daraus ein Übersicht erzeugen. Jeder Datensatz enthält unteranderem folgende Daten/Spalten:

Code: Alles auswählen

<...> | "KategorieName" | "TeilbelegSumme" | "KaeuferID" | <...>
Ich möchte nun eine Übersicht erzeugen die folgende Spalten enhält:

Code: Alles auswählen

1. "KategorieName"
2. Summe von "TeilbelegSumme" für jede Kategorie
3. Summe von "TeilbelegSumme" für jede Kategorie mit "KaeuferID"=0
4. Summe von "TeilbelegSumme" für jede Kategorie mit "KaeuferID"=1


Beispiel für das gewünschte Ergebnis:

Kategorie	        gesamt	Käufer0	Käufer1
------------------------------------------------
Werkzeug	          350       120       230
Verbrauchsmaterial   150        90        60
Rohmaterial          330       220       110
Dienstleistung       170        80        90

Wie bereits geschrieben bekomme ich das als einzelne Abfragen hin (z.B. KategorieName|KategorieSumme Käufer0), habe aber noch keinen funktionierenden Ansatz gefunden die Spalten 2,3,4,... in einer Abfrage zusammen zuführen. Mit dem Schlüsselwort UNION kann man wie ich meine nur Abfragen zeilenweise kombinieren, meine Versuche mit einer Unterabfrage im FROM-Abschnitt endeten im Wirrwarr oder mit Syntax-Fehlern.

So, ich hoffe dass jetzt genug Informationen auf Tisch liegen um mir zu helfen :D

cheer Christian
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: Abfragen zusammenführen

Beitrag von DPunch »

Aloha

Du meinst in etwa so?

Code: Alles auswählen

SELECT
	"KategorieName",
	SUM("TeilbelegSumme") AS "gesamt",
	(SELECT SUM("TeilbelegSumme") FROM "tmpTeilbelege" WHERE "KategorieName" = "a"."KategorieName" AND "KaeuferID" = 0) AS "Käufer0",
	(SELECT SUM("TeilbelegSumme") FROM "tmpTeilbelege" WHERE "KategorieName" = "a"."KategorieName" AND "KaeuferID" = 1) AS "Käufer1"
FROM "tmpTeilbelege" "a"
GROUP BY "KategorieName"
ckoring
Beiträge: 5
Registriert: Mo, 16.05.2011 21:34

Re: Abfragen zusammenführen

Beitrag von ckoring »

Danke DPunch!

So ähnlich hatte ich die Abfrage schon zusammen, ich wußte nur nicht wie ich das GROUP BY aus der Unterabfrage rausbekomme. Prima Problem gelöst!

cheers Christian
Antworten