试试这个:
declare @sql nvarchar(max);  
  
set @sql = ''; ;with t
as
(
select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
from tb
)select @sql = @sql + 
       ',max(case when rownum = '+cast(rownum as varchar)+
       ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
from t
group by rownum
set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
'from 
(
select *,
   ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
from tb
)t
group by 部门,编号,姓名,登记号码,日期'
exec(@sql)

解决方案 »

  1.   


    试试这个:
    declare @sql nvarchar(max);  
      
    set @sql = ''; ;with t
    as
    (
    select *,
           ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )select @sql = @sql + 
           ',max(case when rownum = '+cast(rownum as varchar)+
           ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
    from t
    group by rownum
    set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
    'from 
    (
    select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )t
    group by 部门,编号,姓名,登记号码,日期'
    exec(@sql)消息 102,级别15,状态1,第21行
    'from
             (
              select *,
                       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    ' 附近有语法错误
      

  2.   


    试试这个:
    declare @sql nvarchar(max);  
      
    set @sql = ''; ;with t
    as
    (
    select *,
           ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )select @sql = @sql + 
           ',max(case when rownum = '+cast(rownum as varchar)+
           ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
    from t
    group by rownum
    set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
    'from 
    (
    select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )t
    group by 部门,编号,姓名,登记号码,日期'
    exec(@sql)消息 102,级别15,状态1,第21行
    'from
             (
              select *,
                       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    ' 附近有语法错误你用的sql 2000把
      

  3.   


    试试这个:
    declare @sql nvarchar(max);  
      
    set @sql = ''; ;with t
    as
    (
    select *,
           ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )select @sql = @sql + 
           ',max(case when rownum = '+cast(rownum as varchar)+
           ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
    from t
    group by rownum
    set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
    'from 
    (
    select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )t
    group by 部门,编号,姓名,登记号码,日期'
    exec(@sql)消息 102,级别15,状态1,第21行
    'from
             (
              select *,
                       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    ' 附近有语法错误你的是2000?
      

  4.   


    试试这个:
    declare @sql nvarchar(max);  
      
    set @sql = ''; ;with t
    as
    (
    select *,
           ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )select @sql = @sql + 
           ',max(case when rownum = '+cast(rownum as varchar)+
           ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
    from t
    group by rownum
    set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
    'from 
    (
    select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )t
    group by 部门,编号,姓名,登记号码,日期'
    exec(@sql)消息 102,级别15,状态1,第21行
    'from
             (
              select *,
                       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    ' 附近有语法错误你用的sql 2000把不是,用的sql2008
      

  5.   


    试试这个:
    declare @sql nvarchar(max);  
      
    set @sql = ''; ;with t
    as
    (
    select *,
           ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )select @sql = @sql + 
           ',max(case when rownum = '+cast(rownum as varchar)+
           ' then 时间 else null end) as ['+cast(rownum as varchar)+']' 
    from t
    group by rownum
    set @sql =  'select 部门,编号,姓名,登记号码,日期' +@sql
    'from 
    (
    select *,
       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    from tb
    )t
    group by 部门,编号,姓名,登记号码,日期'
    exec(@sql)消息 102,级别15,状态1,第21行
    'from
             (
              select *,
                       ROW_NUMBER() over(partition by 日期 order by getdate()) as rownum
    ' 附近有语法错误你用的sql 2000把不是,用的sql2008有qq不,方便的话,帮你看看