2015-04-17 61 views
0

我該怎麼做? 列的唯一組合是數字+元素,Cond1..n是SUMming()和Variable1..n需要相同。表列的聚合和遞增合併

這是我想

enter image description here

你有任何想法如何,我可以實現這一點?在真正的數據庫中有幾千行。

SQL小提琴:http://sqlfiddle.com/#!6/1a7d0/1

謝謝

+0

你能告訴我們你已經嘗試了什麼? –

+0

看看樞軸 –

回答

1

你應該閱讀String Aggregation in the World of SQL Server以獲得更好的瞭解如何在SQL Server中Group_concat作品。試試這個,

SELECT 
    t.Number 
    ,[KEY]= STUFF((
      SELECT ',' + tt.[key] 
      FROM SourceTb tt 
      WHERE t.Number = tt.Number and t.Element = tt.Element and t.Variable1 = tt.Variable1 
      FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)'), 1, 1, '') 
    ,t.Element 
    ,t.Variable1 
    ,SUM(CAST(t.cond1 as INT)) 
    ,SUM(CAST(t.cond2 as INT)) 
FROM SourceTb t 
GROUP BY t.Number 
    ,t.Element 
    ,t.Variable1 
ORDER BY t.Number desc 

HERE is working fiddle

+0

哇謝謝你這個作品! :-)我會玩一點STUFF功能,我不知道:-) – Muflix

+1

很高興它幫助。還使用sql fiddle更新了查詢。 –