2012-05-10 42 views
0

我有一個表格式潛在複雜的嵌套子查詢 - 按日期遞增改變訂單行基於行的位置列

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行,並且名稱可以出現在一次和60次之間的任何地方,並且數據當前有好893個不同的唯一名稱。

我希望格式爲列中包含按日期列升序排列的結果,即R1是該名稱的最舊結果,R2是第二個最早的結果。最後一列(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作業保持最新的數據會更容易些。 ,然後我的出口是一個選擇*從...

回答

0

根據我的問題創建了一個基表,添加了比跑52行的更新腳本列插入值限制在0,1到51,1以獲得正確的結果。

性能是我服務器上的問題,所以最好將它們分組到10/15個查詢中。