一下记录序号     名称     值
1 水份值 201
2 水份值 150
3 水份值 120
4 水份值 150
5 水份值 120
6 水份值 120
7 水份值 120
8 水份值 100
9 水份值 ddd
10 水份值 10
1 油份值 300
2 油份值 200
3 油份值 300
4 油份值 300
5 油份值 300
6 油份值 30
7 油份值 30
8 油份值 20
9 油份值 50
10 油份值 200
1 麦拉宁颊上 300
2 麦拉宁颊上 10
3 麦拉宁颊上 40
4 麦拉宁颊上 120
5 麦拉宁颊上 10
6 麦拉宁颊上 20我要的结果是这样
名称     1     2     3     4     5     6     7     8     9     10
水份值   201   150   120   150   120   120   ...
油分值   300   200   300   300   300   30    ...
...
每个名称都是<=10笔记录
不够10笔的后面补空
这样结果该如何实现

解决方案 »

  1.   

    Select
    名称,
    SUM(Case 序号 When 1 Then 值 Else 0 End) As [1],
    SUM(Case 序号 When 2 Then 值 Else 0 End) As [2],
    SUM(Case 序号 When 3 Then 值 Else 0 End) As [3],
    SUM(Case 序号 When 4 Then 值 Else 0 End) As [4],
    SUM(Case 序号 When 5 Then 值 Else 0 End) As [5],
    SUM(Case 序号 When 6 Then 值 Else 0 End) As [6],
    SUM(Case 序号 When 7 Then 值 Else 0 End) As [7],
    SUM(Case 序号 When 8 Then 值 Else 0 End) As [8],
    SUM(Case 序号 When 9 Then 值 Else 0 End) As [9],
    SUM(Case 序号 When 10 Then 值 Else 0 End) As [10]
    From

    Group By
    名称
      

  2.   

    你的是需要固定有11列數據,可以不用使用動態SQL語句,直接查詢即可。
      

  3.   

    select 名称 ,
    sum(case 序号 when 1 then 值 end) [1],
    .......
    sum(case 序号 when 10 then 值 end) [10]
    from 表 
    group by 名称
      

  4.   

    --如果值不全是數字
    Select
    名称,
    Max(Case 序号 When 1 Then 值 Else 0 End) As [1],
    Max(Case 序号 When 2 Then 值 Else 0 End) As [2],
    Max(Case 序号 When 3 Then 值 Else 0 End) As [3],
    Max(Case 序号 When 4 Then 值 Else 0 End) As [4],
    Max(Case 序号 When 5 Then 值 Else 0 End) As [5],
    Max(Case 序号 When 6 Then 值 Else 0 End) As [6],
    Max(Case 序号 When 7 Then 值 Else 0 End) As [7],
    Max(Case 序号 When 8 Then 值 Else 0 End) As [8],
    Max(Case 序号 When 9 Then 值 Else 0 End) As [9],
    Max(Case 序号 When 10 Then 值 Else 0 End) As [10]
    From

    Group By
    名称
      

  5.   

    --創建測試環境
    Create Table 表
    (序号 Int,
     名称 Nvarchar(20),
     值 Int)
    --插入數據
    Insert 表 Select 1, N'水份值', 201
    Union All Select 2, N'水份值', 150
    Union All Select 3, N'水份值', 120
    Union All Select 4, N'水份值', 150
    Union All Select 5, N'水份值', 120
    Union All Select 6, N'水份值', 120
    Union All Select 7, N'水份值', 120
    Union All Select 8, N'水份值', 100
    Union All Select 9, N'水份值', 100
    Union All Select 10, N'水份值', 10
    Union All Select 1, N'油份值', 300
    Union All Select 2, N'油份值', 200
    Union All Select 3, N'油份值', 300
    Union All Select 4, N'油份值', 300
    Union All Select 5, N'油份值', 300
    Union All Select 6, N'油份值', 30
    Union All Select 7, N'油份值', 30
    Union All Select 8, N'油份值', 20
    Union All Select 9, N'油份值', 50
    Union All Select 10, N'油份值', 200
    Union All Select 1, N'麦拉宁颊上', 300
    Union All Select 2, N'麦拉宁颊上', 10
    Union All Select 3, N'麦拉宁颊上', 40
    Union All Select 4, N'麦拉宁颊上', 120
    Union All Select 5, N'麦拉宁颊上', 10
    Union All Select 6, N'麦拉宁颊上', 20
    GO
    --測試
    Select
    名称,
    SUM(Case 序号 When 1 Then 值 Else 0 End) As [1],
    SUM(Case 序号 When 2 Then 值 Else 0 End) As [2],
    SUM(Case 序号 When 3 Then 值 Else 0 End) As [3],
    SUM(Case 序号 When 4 Then 值 Else 0 End) As [4],
    SUM(Case 序号 When 5 Then 值 Else 0 End) As [5],
    SUM(Case 序号 When 6 Then 值 Else 0 End) As [6],
    SUM(Case 序号 When 7 Then 值 Else 0 End) As [7],
    SUM(Case 序号 When 8 Then 值 Else 0 End) As [8],
    SUM(Case 序号 When 9 Then 值 Else 0 End) As [9],
    SUM(Case 序号 When 10 Then 值 Else 0 End) As [10]
    From

    Group By
    名称
    GO
    --刪除測試環境
    Drop Table 表
    --結果
    /*
    名称 1 2 3 4 5 6 7 8 9 10
    水份值 201 150 120 150 120 120 120 100 100 10
    油份值 300 200 300 300 300 30 30 20 50 200
    麦拉宁颊上 300 10 40 120 10 20 0 0 0 0
    */
      

  6.   

    Select
    名称,
    SUM(Case 序号 When 1 Then 值 Else 0 End) As [1],
    SUM(Case 序号 When 2 Then 值 Else 0 End) As [2],
    SUM(Case 序号 When 3 Then 值 Else 0 End) As [3],
    SUM(Case 序号 When 4 Then 值 Else 0 End) As [4],
    SUM(Case 序号 When 5 Then 值 Else 0 End) As [5],
    SUM(Case 序号 When 6 Then 值 Else 0 End) As [6],
    SUM(Case 序号 When 7 Then 值 Else 0 End) As [7],
    SUM(Case 序号 When 8 Then 值 Else 0 End) As [8],
    SUM(Case 序号 When 9 Then 值 Else 0 End) As [9],
    SUM(Case 序号 When 10 Then 值 Else 0 End) As [10]
    From

    Group By
    名称
      

  7.   

    有个问题我的值字段是自符型的
    无法sum
      

  8.   

    MaDaHai(大海) ( ) 信誉:100  2007-07-27 10:52:20  得分: 0  
     
     
       有个问题我的值字段是自符型的
    无法sum
      
     
    ----------------
    我上面有寫不是數字型的時候的方法,你沒仔細看。
    不過,修改下。Select
    名称,
    Max(Case 序号 When 1 Then 值 Else '' End) As [1],
    Max(Case 序号 When 2 Then 值 Else '' End) As [2],
    Max(Case 序号 When 3 Then 值 Else '' End) As [3],
    Max(Case 序号 When 4 Then 值 Else '' End) As [4],
    Max(Case 序号 When 5 Then 值 Else '' End) As [5],
    Max(Case 序号 When 6 Then 值 Else '' End) As [6],
    Max(Case 序号 When 7 Then 值 Else '' End) As [7],
    Max(Case 序号 When 8 Then 值 Else '' End) As [8],
    Max(Case 序号 When 9 Then 值 Else '' End) As [9],
    Max(Case 序号 When 10 Then 值 Else '' End) As [10]
    From

    Group By
    名称
      

  9.   

    ok 感谢paoluo(一天到晚游泳的鱼)
      

  10.   

    Haiwer(海阔天空) ( ) 信誉:138  2007-7-27 11:02:42  得分: 0  
     
     
       
    是条好鱼......不知道味道怎么样--------------
    Fish is our friend, we can't eat it.