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

急问,一个合并表数据的问题!!!
表A
aID         aYear     cTitle
  1           2006           a

  2           2006           b

  3           2007           a

  4           2007           b

aID是自增,每年的数据记录数相同,就是复每年的数据的.

要合并成如下

aID2006         cTitle           aID2007
  1                       a                         3
  2                       b                         4

这样的Sql如何写?

------解决方案--------------------
字段不固定 需要用另一个表来记录本表结构,动态增加字段
下班了 明天试下
------解决方案--------------------
---aYear固定只有2006和2007
Select Max(Case aYear When 2006 Then aID Else ' ' End) As aID2006,
cTitle,
Max(Case aYear When 2007 Then aID Else ' ' End) As aID2007
From TbY
Group By cTitle

---不固定
Declare @sql Varchar(8000)
Set @sql= ' '
Select @sql=@sql+ ',Max(Case aYear When ' ' '+Cast(aYear As Varchar)+ ' ' ' Then aID Else ' ' ' ' End)
As [aID '+Cast(aYear As Varchar)+ '] ' From TbY Group By aYear
Exec( 'Select cTitle '+@sql+ 'From TbY Group By cTitle ')