2015-10-16 32 views
0

我有一個名爲Fnc_MyFunc(@myDate)的存儲函數。它需要一個date參數,並返回一個表是這樣的:通過加入存儲函數的結果來返回動態列

user_id | count_laps 
--------+----------- 
1  | 85 
2  | 37 
5  | 55 
12  | 48 

我想執行這個對於很多日期(日期間隔)。
與我的功能我whant這樣的結果:(每天圈爲所有用戶)

user_id | [2015-10-01] | [2015-10-02] | [2015-10-03] | .... 
--------+--------------+--------------+--------------+-------------- 
1  | 85   | 2   | 66   | .... 
2  | 37   | 58   | 85   | .... 
5  | 55   | 33   | 75   | .... 
12  | 48   | 44   | 55   | .... 
+0

您是否嘗試過使用動態sql? –

+1

唯一的辦法就是動態sql。仔細閱讀並吸收這篇綜合文章。 http://www.sommarskog.se/dynamic_sql.html – Jeremy

回答

1

該查詢應該做你想要什麼:

SELECT 
    u.userId, 
    d1.count_laps as [2015-10-01] 
    d2.count_laps as [2015-10-02], 
    d3.count_laps as [2015-10-03] 
FROM 
    TableOrQueryWithDistinctUserIds u 
    LEFT JOIN Fnc_MyFunc('2015-10-01') d1 ON u.userId = d1.userId 
    LEFT JOIN Fnc_MyFunc('2015-10-02') d2 ON u.userId = d2.userId 
    LEFT JOIN Fnc_MyFunc('2015-10-03') d3 ON u.userId = d2.userId 

然後,您可以使它的動態,如果有必要。