Antje Hofmann: (MySQL) Bekomme die Reihen nicht wie gewünscht gezählt

Beitrag lesen

Hallo Curt

und genau das macht doch auch schon das count mit dem group by, oder etwa doch nicht?

nein

deine Abfrage:
select personalnummer, count(*) from buchungen where ndatum like '2002-01%' group by personalnummer;

gibt an, welche Personalnummer wieviele Buchungen vorgenommen hat. Du möchstest aber wissen, wieviele Personalnummern Buchungen vorgenommen haben. Dazu genügt es

select , count(distinct personalnummer) from buchungen where ndatum like '2002-01%';

anzugeben.

Noch ein Tipp: Verwende statt like lieber DATE_FORMAT. Das macht dich unabhängig von gespeicherten Datumsformaten. In deinem Beispiel könnte das z.B. so aussehen

select , count(distinct personalnummer) from buchungen where FATE_FORMAT(ndatum,'%c.%y)='1.02';

%c steht für Monatszahlen ohne führende Null und %y für zweistellige Jahreszahlen.

Trennzeichen (hier der Punkt) ist beliebig. Mehr dazu http://mysql.com/documentation/mysql/bychapter/manual_Reference.html#Date_and_time_functions

Viele Grüße

Antje