Zaehler bei nicht-normalisierter Datenbank?

Hi!
Ich habe eine MS SQL 2005 DB von einem Kunden mit einer einzigen Tabelle die Bestellungen enthaelt. Das Ganze ist nicht normalisiert, daher steht fuer jede Bestellposition einer Bestellung ein Datensatz in der Tabelle.

Wichtig sind fuer mich nun die Spalten ‚Kunde‘, ‚Bestellnummer‘, ‚Artikel‘ und ‚Anzahl‘. Ich moechte eine Uebersicht ueber die gesamte Tabelle, die fuer jeden Kunden die Anzahl der Bestellungen, die Anzahl der Bestellpositionen und die Summe aller bestellten Artikel (also die Summe der Bestellanzahl) ausgibt.

Ich wuerde die Aufgabe mit mehreren Einzelschritten hinbekommen, aber vielleicht gibt es ja eine elegantere Loesung die alles innerhalb eines Queries erledigen kann? Ich musste schon oft feststellen dass man in SQL richtig komplexe Aufgaben loesen kann, daher bin ich mal gespannt was die Experten hier meinen…

Viele Gruesse

Ralf

Servus Ralf,

wie sieht denn deine Tabelle aus, hat sie einzelne Spalten für
Kunde/Bestellnummer/Artikel/Anzahl ?

Wenn ja:

SELECT Kunde, count(DISTINCT Bestellnummer) AS AnzahlBestellungen,
count(*) AS AnzahlPositionen, sum(Anzahl) AS Anzahl
FROM MeineTabelle
GROUP BY kunde

Wenn nein, stehen die jeweiligen Werte zumindest immer an den selben
Positionen ?

Gruss,
SomeOne

Hallo SomeOne!

Nachdem ich gestern ungefaehr schon eine Stunde mit diesem Problem rumgespielt hatte habe ich aufgegeben und mich damit abgefunden dass es nicht geht.

Jetzt kommst du und praesentierst mir die Loesung und ich muss mich damit abfinden dass ich einfach zu doof dazu war…

Das Query hat nach Anpassung der Spaltennamen direkt so funktioniert wie es sollte. Ich ziehe den Hut vor dir!

Vielen Dank!

Ralf