Microsoft SQL数据透视表

时间:2015-03-05 19:25:00

标签: sql sql-server pivot

我试图将一些数据转移到一个不能得到它。我的数据如下:

ID          Total Due
3065765     145.78  
3065765     22.58   
3065765     57.92

我想获得一行

Id,     total due
3065765 145.78 22.58 57.92

2 个答案:

答案 0 :(得分:0)

您正在寻找的是STUFF函数https://msdn.microsoft.com/en-us/library/ms188043.aspx

 SELECT [ID]
    , STUFF((SELECT ', ' + CONVERT(varchar(30),A.[Total Due]) FROM mytable A
    Where A.[ID]=B.[ID] FOR XML PATH('')),1,1,'') As [Total Due] 
    From mytable B
    Group By [ID]

答案 1 :(得分:0)

通常使用SQL Pivot,您可以使用类型列或可以转动的内容,例如价格类型或其他类别,以用作价格的列标题。看一下Pivot的语法。也许您可以使用ROW_Number()为给定ID获取行的数字列。然后将其用作数据透视(For)列。这是一个类似例子的链接。 http://www.bimonkey.com/2011/05/ranking-and-numbering-rows-and-subsets-of-rows-in-t-sql/