建表如下临时表#t1的数据是不定的.怎样对新建表插入数据.if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].['+'332'+ ']' ) and OBJECTPROPERTY(id, N'IsUserTable') = 1)
EXEC('drop table [dbo].['+'332'+']')
declare @sql varchar(2000)
set @sql=' CREATE TABLE [dbo].['+'332' + '] ('declare @l varchar(8)DECLARE mycu1 CURSOR FOR    SELECT   l    FROM #t1  order by l
OPEN mycu1
FETCH NEXT FROM mycu1 INTO @l
WHILE @@FETCH_STATUS = 0
 BEGIN
      set @sql=@sql+'['+@l+'] [numeric] (9,2) null, '      FETCH NEXT FROM mycu1 INTO @l
   END   CLOSE mycu1
   DEALLOCATE mycu1set @sql=@sql+ ' xx [numeric] (9,2) null)'--select @sqlEXEC(@SQL)

解决方案 »

  1.   

    select top 100000 * into #t2
    from 
        (select 39.10*number a1,number as number1 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t1,
        (select 53.20*number a2, number as number2 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t2,
        (select 55.80*number a3, number as number3 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t3,
        (select 62.70*number a4, number as number4 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t4,
        (select 64.90*number a5, number as number5 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t5,
        (select 69.50*number a6, number as number6 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t6,
        (select 72*number a7, number as number7 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t7,
        (select 74*number a8, number as number8 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t8,
        (select 82.40*number a9, number as number9 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t9,
        (select 92.10*number a10, number as number10 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t10,
        (select 94.40*number a11, number as number11 from dbo.[332] t, master..spt_values m where type='p' and number<=5) t11
    order by number1,number2 
    select top 100 * from 
    (select *,a=a1*number1+a2*number2+a3*number3+a4*number4+a5*number5+a6*number6+a7*number7+a8*number8+a9*number9+a10*number10+a11*number11
    from 
    #t2) m
    where a<=@a and number1<>0
    order by abs(a-@a)
    上面的数据插入临时表2的数字是从新建表里取值...郁闷死了..都几天没想出来..大大啊一定要帮我啊
      

  2.   


    declare @x int,@a int,@sql2 varchar(2000)select @x=count(*),@a=1 from #t1select @sql2='insert into [332] select * from (select row_number() over(order by (select 0)) rn,l from #t1) t PIVOT(max(l) FOR rn IN ('while(@a<=@x)
    begin
      select @sql2=@sql2+'['+cast(@a as varchar)+'],'
      select @a=@a+1
    endselect @sql2=right(@sql2,len(@sql2)-1)+')) t 'exec @sql2
      

  3.   

    sorry,5楼最后一行代码更正为: exec(@sql2)