我该怎么做? 列的唯一组合是Number + Element,Cond1..n是SUMming(),Variable1..n也需要相等。
以下是我的想法
你知道我怎么能达到这个目的吗?在真正的数据库中它有几千行。
SQL小提琴:http://sqlfiddle.com/#!6/1a7d0/1
谢谢
答案 0 :(得分:1)
您应该阅读String Aggregation in the World of SQL Server以更好地了解Group_concat
在sql server中的工作原理。试试这个,
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