私はフォーマットのテーブルを持っています
Date | Name | Result
---------------------------
2012-05-02 | bob | W
2012-04-01 | kevin | D
2012-03-21 | mark | L
2012-03-19 | bob | W
そして、Excelにエクスポートできるクエリを作成したいと思います。現在、テーブルには約3000行が含まれており、名前は1回から60回の間のどこかに表示される可能性があり、現在、データには893個の異なる一意の名前があります。
列に日付列の昇順で並べ替えられた結果が含まれる形式にします。つまり、R1はその名前の最も古い結果であり、R2は2番目に古い結果です。最後の列(Rn)が最新の結果になります。縞などを簡単に確認できます。
Name | R1 | R2 | R3 ....
-------------------
Bob | W | W | D | W ....
Mark | D | L |
Trevor |
名前、日付の昇順での日付結果の順序を選択することで、個々の名前に対してこれを行うことができますが、これは列として返されます。もちろん、列にExcelで手動で編集できますが、名前ごとにSQLでこれを行う方法はありますか?
何かのようなもの:
select f_name,
select f_result from table a where f_name=b.f_name order by f_date asc limit 1 as r1,
select f_result from table a where f_name=b.f_name order by f_date asc limit 2,1 as r2,
select f_result from table a where f_name=b.f_name order by f_date asc limit 3,1 as r3
from table b, table b
where a.id=b.id
ただし、これは入力、更新、および保守に非常に時間がかかるため、明らかにプログラム的に行われます。
敬具
編集:cronジョブを介してデータを維持できるものを作成する方が簡単な場合は、テーブルやビューなどを作成する権限があることに注意してください。そして、私のエクスポートはselect * from .. ..