Das ist ein Beispiel für die zweite Möglichkeit(ohne Join oder Subselect).
Das Endergebnis steht dann in der letzten Ergebniszeile.
SET @m1:=0,@m2:=0,@m3:=0,@m4:=0,@m5:=0,@m6:=0,@m7:=0,@m8:=0,@m9:=0,@m10:=0,@m11:=0,@m12:=0;
SELECT *,
IF(1 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m1:=@m1+1,@m1) AS Jan,
IF(2 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m2:=@m2+1,@m2) AS Feb,
IF(3 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m3:=@m3+1,@m3) AS Mar,
IF(4 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m4:=@m4+1,@m4) AS Apr,
IF(5 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m5:=@m5+1,@m5) AS Mai,
IF(6 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m6:=@m6+1,@m6) AS Jun,
IF(7 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m7:=@m7+1,@m7) AS Jul,
IF(8 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m8:=@m8+1,@m8) AS Aug,
IF(9 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m9:=@m9+1,@m9) AS Sep,
IF(10 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m10:=@m10+1,@m10) AS Okt,
IF(11 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m11:=@m11+1,@m11) AS Nov,
IF(12 BETWEEN MONTH( date_start ) AND MONTH( date_end ),@m12:=@m12+1,@m12)AS Dez
FROM test
ORDER BY date_start,date_end;
Das Jahr kannst Du ja noch mit WHERE dranhängen.
Grüße Oesi
Ich weiß, dass ich nichts weiß... (Sokrates)
als Antwort auf: [#136246]
(Dieser Beitrag wurde von oesi50 am 14. Jan 2005, 22:52 geändert)