Einzelnen Beitrag anzeigen

waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#10

Re: SQL Abfrage (Kreuztabelle)

  Alt 29. Apr 2008, 13:37
Hallo,
nun funtioniert es zumindest halb.

Die Kreuztabelle muss ich nun noch etwas optimieren.

Die Datenbasis ist
Kundenname, Artikelname (4 verschiedene Artikelgruppen), Wert (dieser wird je Datensatz unterschiedlich sein)
z.B.
Mustermann, Artikel1, 12€
Mustermann, Artikel1, 17€
Mustermann, Artikel2, 5€
:
:

Gruppiert wird das Ganze auf Kundenname

Das Ergebnis soll wie folgt aufgebaut sein.
Zu jedem Kundennamen benötige ich die Anzahl der und den Maximalwert zu jedem der 5 artikel.

Kundenname Artikel1_Anzahl, Artikel1_Maxwert, Artikel2_Anzahl, Artikel2_Maxwert.

Ich habs wie folgt probiert, allerdings stimmen die Ergebniswerte nicht.

SELECT name, count(name),
COUNT( IIF( artikel = 'a', name, '')) As artikel1_anz,
MAX( IIF( artikel = 'a', umre4, 0)) As artikel1_max,
COUNT( artikel = 'b') As artikel2_anz,
MAX( IIF( artikel = 'b', umre4, 0)) As artikel2_max,
COUNT( artikel = 'c', '')) As artikel3_anz,
MAX( IIF( artikel = 'c', umre4, 0)) As artikel3_max,
COUNT( IIF( artikel = 'd', name, '')) As artikel4_anz,
MAX( IIF( artikel = 'd', umre4, 0)) As artikel4_max
from Stammdaten Group by name

Die Maximalwerte werden zu jedem Artikel richtig ausgegeben, allerdings die Anzahl ist bei allen gleich, ich bekomme es irgendwie nicht hin bei einem Kunden die Häufigkeit der Artikel zählen, alle sind gleich.

hat vielleicht jemand eine Idee ??
Da ich SQL-Anfänger bin stellt sich vielleicht erst einmal die Frage ob dies überhaupt mit einer Get es überhaupt mit einer Abfrage geht, oder muss ich dies über 2 Tabellen realisieren, die ich anchließend miteinander verknüpfe

mfg
  Mit Zitat antworten Zitat