Hallo zusammen !
ich habe eine Tabelle mit folgendem Aufbau.
table_sitzung
id | kdnr | sitzungsnr | zustand
Daten :
1,112,1,A
2,112,1,B
3,112,1,C
4,112,1,D
5,444,2,A
6,444,2,B
7,545,3,A
8,545,3,B
9,545,3,C
10,112,4,A
11,112,4,B
12,112,4,C
Also verschieden Zustände für eine Sitzung.
Beispiel :
Ein User loggt sich ein, und bekommt eine Sitzungsnummer.
Seine Vorgänge werden in zuständen gespeichert.
Loggt sich dieser User später wieder ein bekommt er eine neue Sitzung …
Ich benötige die Kunden, mit den meisten Sitzungen, die aber nicht den Zustand ‚D‘ erreichten.
Jede Sitzung darf nur einmal gezählt werden.
Also :
SELECT kdnr,count(*) as anzahl FROM table_sitzung
WHERE Zustand ‚D‘
group by kdnr
order by anazhl desc
->
liefert mir die Datensätze pro Kunde, wobei der Zustand nicht D war.
Jetzt soll jede sitzungsnr aber nur einmal gezählt werden.
Ich dachte erst an sowas :
SELECT kdnr,count(distinct sitzungsnr) as anzahl FROM table_sitzung
WHERE Zustand ‚D‘
group by kdnr
order by anzahl desc
-> das geht aber nicht bzw. das Ergenbnis stimmt nicht.
Hat jemand von euch ne Idee ?
gruss jogi