PDA

Vollständige Version anzeigen : Gruppierung in Abfrage


Stahlbanane
11.05.2011, 08:42
Hallo,
ich brauche einen Denkanstoss; vermutlich sehe ich den Wald vor lauter Bäumen nicht...
Ich möchte per Abfrage die Anzahl von Datensätzen für bestimmte Kunden gruppieren und darin bestimmte Kunden fest anzeigen lassen (auch wenn keine DS vorhanden) und den "Rest" als Summe ausgeben. Das Ergebnis soll in etwa so aussehen:

2011/01: Kunde 1: 10; Kunde 2: 11; "Andere": 20
2011/02: Kunde 1: 12; Kunde 2: 15; "Andere"; 17
etc.

Ich komme hier irgendwie nicht weiter.

Bin für jeden Tipp dankbar

Gruß
Jan
///

Josef P.
11.05.2011, 08:53
Hallo!

Du könntest eine Kreuztabellenabfrage verwenden.
Für die Datenaufbereitung für die Kreuztabelle könntest du eine Hilfstabelle bzw. Abfrage nutzen, in der die Kunden enthalten sind, die fest angezeigt werden sollen. Damit kannst du mittels left join die anzuzeigenden Spaltennamen für die Kreuztabelle erstellen.

mfg
Josef

Stahlbanane
11.05.2011, 09:00
Hallo,
die Idee hatte ich auch schon. Aber wie kann ich es bewerkstelligen, dass in der Kreuztabellenabfrage alle andere Kunden summiert werden?

Gruß
Jan
///

Josef P.
11.05.2011, 09:05
Ich würde mir zuerst in einer Abfrage die Daten passend gestalten.

z. B.:
select
Nz(K.KundenName, "Andere") AS Spaltenbezeichnung,
...
from
(DeineTabelle T
left join
SpezielleKunden SK
ON SK.idKunde = T.fiKunde)
left join
Kunden K
On K.idKunde = SK.Kunde

Ansonsten:
Wenn es nur wenige spezielle Kunden sind, könntest du die Abfrage auch nur per Group By gestalten:
select
Format(T.Datumsfeld, "yyyy\/mm") AS Zeitraum,
- Sum(T.fiKunde = 123) AS AnzahlKunde1,
- Sum(T.fiKunde = 456) AS AnzahlKunde2,
Count(*) + Sum(T.fiKunde = 123) + Sum(T.fiKunde = 456) AS AnzahlRest
from
DeineTabelle T
Group By
Format(T.Datumsfeld, "yyyy\/mm")

Stahlbanane
11.05.2011, 09:13
Hallo,
ich glaube, du hast mir einen Weg gezeigt. Ich werde das gleich mal testen.

Danke
Jan
///