declare @sql varchar(8000)
select @sql=''
select @sql=@sql+',max(case when rq='''+rtrim(rq)+''' and name='''+rtrim(name)+''' then time1 else '''' end) as ['+rtrim(rq)+']' from kq group by rq,nameexec ('select * from (select name'+@sql+' from kq where time1 like ''上%'' group by name union all select name'+@sql+' from kq where time1 like ''下%'' group by name)t order by name')

解决方案 »

  1.   

    declare @s varchar(8000)     
    declare @s1 varchar(8000)
    set @s = ''
    set @s1 = ''
    select @s = @s + ',' +  ' max(case when rq = ''' + rq + ''' then time1 end)  as ''' +  rq  + ''''
    from kq group by rq
    select @s1 = @s1 + ',' +  ' min(case when rq = ''' + rq + ''' then time1 end)  as ''' +  rq  + ''''
    from kq group by rqexec ( 'select name ' + @s + ' from kq group by name union all select name ' + @S1 +' from kq group by name' )
      

  2.   

    高!感谢LouisXIV(夜游神)大侠!同时也感谢zjdyzwx(十一月猪)大侠,当记录有不同姓名时,查询结果最精确是LouisXIV(夜游神)大侠,所以分给他多点,请zjdyzwx(十一月猪)大侠谅解