将表中的行转换为列以显示Gridview的Header列

时间:2013-06-04 10:39:31

标签: c# asp.net sql gridview datagridview

第一个问题

我有一张桌子

CatID   Category    IsArchived  
1       Category1   0  
3       category2   0  
4       Category3   0  
5       Category4   0  
6       Category5   0  
7       Category6   0  
8       Category7   0  

我想将行转换为列,以便我在一行中包含每个类别的列的所有类别。

另外,我想将此数据绑定到Gridview

的标题列

第二个问题

我有另一张桌子:

CCtID  ClientID CatID  CatStatus Date                  modifiedby  
1      1        1      1         2013-06-03 22:19:00   1  
2      1        3      1         2013-06-03 22:20:00   1  
3      1        4      0         2013-06-03 22:20:00   1  
4      1        5      0         2013-06-03 22:20:00   1  
5      1        6      1         2013-06-03 22:20:00   1  
6      1        7      1         2013-06-03 22:20:00   1  
7      1        8      0         2013-06-03 22:20:00   1  
8      2        8      0         2013-06-03 22:21:00   1  
9      2        7      0         2013-06-03 22:21:00   1  
10     2        6      0         2013-06-03 22:21:00   1  
11     2        5      1         2013-06-03 22:21:00   1  
12     2        4      1         2013-06-03 22:21:00   1  
13     2        3      0         2013-06-03 22:21:00   1  
14     2        1      0         2013-06-03 22:22:00   1  

我想以列格式显示每个客户的类别及其状态:

clientName  cat1  cat2  cat3  cat4  cat5  cat6  
1           1     0     1     o     1     1

1 个答案:

答案 0 :(得分:0)

假设您正在使用MS SQL服务器,则需要使用PIVOT关键字。链接相同:PIVOT AND UNPIVOT