2014-04-25 125 views
1

我有一個存儲過程,它反序列化一個XML字符串並將其添加到表格中;將兩個表合併成一個結果集sql服務器

MonthDate  floatValue 
01/01/2014  10,123.23 
02/03/2014  11,324.34 

等。 然後我有一組模擬的結果,我需要與這些日期相對應,但它們是以逗號分隔的數據集形式的,如下所示;

[123.43,125.34,134.33],[124.33,143.33,234.22],etc.. 

我已經寫了一個函數,將字符串解析成1列的列表,並且該數據的groupIDs看起來像這樣;

tempID  floatValue 
1    123.43 
1    125.34 
1    134.33 
2    124.33 
2    143.33 
2    234.22 

我一直在使用這個第二組數據透視表試過,但聚集廢墟中的數據集,因爲我必須有他們在特定的順序,在我的第一個反序列化的XML結果的日期有關。基本上我想得到的結果就是這樣的;

MonthDate  MedianResult temp1 temp2 etc.. 
01/01/2014 10,123.23  123.43 124.33 
02/03/2014 11,324.34  125.34 143.33 

這真是我可以解釋它是最好的,我已經寫來得到結果的查詢集,我已經展示了,但不知道如何「結合」兩個表中獲得什麼即時尋找。

+0

將字符串解析爲1列和和groupIDs表的函數,是否可以修改爲添加序列ID 1,2,3以確保正確的順序應用於float值或將浮動值總是從最低到最高?如果您確實添加了1,2,3個案例語句,您可以使用1,2,3;否則你必須使用僞值或臨時值來維持秩序;並且選擇不能保證與插入相同的順序...所以知道特定的順序,或者它總是從最低到最高的幫助。 – xQbert

回答

1

您是否嘗試添加分區ID並從那裏進行旋轉?當然,這個例子會按照升序排序,但在概念上,它是一個開始?

ROW_NUMBER() OVER (PARTITION BY [tempID] ORDER BY [floatValue]) AS [RowNumber] 
+1

我決定採取與使用數據透視表不同的路線。由於我動態創建兩個要合併的表,因此我決定在原始的MonthDate表上使用自動增量標識,並創建一個單獨的ID行,以每個tempID的總行數遞增。這樣每個tempID(2-12)也將有一個介於1和113(或更多)之間的ID列,它精確匹配日期標識。然後,我只需加入ID上的表格,效果很好。 –

相關問題