0

ID によって実行されるタスクに関するさまざまな情報を記録するテーブルがあります。テーブルは次のようになります。

IDマーク ------日付
1 50 -----2012 年 3 月 8 日
1 60 -----2012/07/01
2 40 -----2012 年 5 月 8 日
2 50 -----2012 年 2 月 7 日
....など

私がやりたいことは、次のような結果を得ることです:

ID Marks_In_Jul ---Marks_In_Aug
1 -------60 ------50       
2 -------50 ------40

....など (必要に応じて、列を月、週、日に分割できます)

これを行うことで、これを手動で行うことができます:

SELECT 
id,
sum(if(date BETWEEN '2011-07-01' AND '2011-07-31', mark,0)) as Marks_In_Jul,
sum(if(date BETWEEN '2011-08-01' AND '2011-08-31', mark,0)) as Marks_In_Aug,
...
GROUP BY id;
.... etc

しかし、これはすべて手動であり、週に絞り込みたい場合は、日付を手動で変更するのに時間がかかります(そして、日によってはほとんど不可能です)

MySQLである種のループまたは同様のものを作成する方法はありますか?ここで、開始/終了値と必要な日数(1、7、または30など)を変更できます。

ありがとう、ドン

4

0 に答える 0