日期:2014-05-18  浏览次数:20540 次

关于游标和交叉表使用!!!求救!!!
表A     :

  COL     COL1       COL2
    A         1
    B         1
    A         2
    B         2
    C         3
    C         3
成为   :

    col           1               2               3
      A             1个         1个             0个
      B             1个         1个             0个
      C             0个         0个             2个

------解决方案--------------------
li_binquan() ( ) 信誉:100 Blog 2007-03-09 15:54:33 得分: 0


1,2,3 成了汉字怎么就不行了?提示列名无效!!!!



----------

是這個意思?


Create Table A
(COL Varchar(10),
COL1 Nvarchar(10),
COL2 Int)
Insert A Select 'A ', N '一 ', Null
Union All Select 'B ', N '一 ', Null
Union All Select 'A ', N '二 ', Null
Union All Select 'B ', N '二 ', Null
Union All Select 'C ', N '三 ', Null
Union All Select 'C ', N '三 ', Null
GO
Declare @S Nvarchar(4000)
Select @S = 'Select Col '
Select @S = @S + N ', Rtrim(SUM(Case COL1 When N ' ' ' + Rtrim(COL1) + N ' ' ' Then 1 Else 0 End)) + N ' '个 ' ' As [ ' + Rtrim(COL1) + '] '
From A Group By COL1
Select @S = @S + ' From A Group By Col Order By Col '
EXEC(@S)
GO
Drop Table A
--Result
/*
COL 一 二 三
A 1个 1个 0个
B 1个 1个 0个
C 0个 0个 2个
*/