使用Access可以,新建查询,使用“交叉表”
其他的,比如PB可以这么显示,使用Crasstab数据窗口。

解决方案 »

  1.   

    在SQL里面用游标再插入临时表
      

  2.   

    同意 hjhing(winding),如果用SP建临时表实现的话,列数不确定,实现起来会非常怪
    面对这种问题,应该还是在前端进行处理
      

  3.   

    create table # (姓名 varchar(100),工资  int, 奖金 int)
    insert # values('张三',   2000,  500)
    insert # values('李四',   1000,  700)
    insert # values('王五',   1500,  400)declare @sql varchar(8000)
    set @sql = 'select '
    select @sql = @sql + ''''+姓名+''' 姓名,sum(case 姓名 when '''+姓名+''' then 工资 else 0 end) as '+姓名+'的工资,sum(case 姓名 when '''+姓名+''' then 奖金 else 0 end) as '+姓名+'的奖金,'
      from (select distinct 姓名 from #) aselect @sql = left(@sql,len(@sql)-1) + ' from #'exec(@sql)
    godrop table #
      

  4.   

    create table # (姓名 varchar(100),工资  int, 奖金 int)
    insert # values('张三',   2000,  500)
    insert # values('李四',   1000,  700)
    insert # values('王五',   1500,  400)declare @sql varchar(8000)
    set @sql = 'select '
    select @sql = @sql + ''''+姓名+''' 姓名,sum(case 姓名 when '''+姓名+''' then 工资 else 0 end) as 工资,sum(case 姓名 when '''+姓名+''' then 奖金 else 0 end) as 奖金,'  from (select distinct 姓名 from #) a
    select @sql = left(@sql,len(@sql)-1) + ' from #'
    exec(@sql)drop table #
      

  5.   

    呵呵,本来我想在.NET里用DATAGRID来实现这个功能的,但是DTAAGRID不大方便 ,便想到在数据库这边实现了,看来一条语句不行,还是做个SP吧,谢谢楼上的各位