如何按照查询排序后的顺序依次先后插入一个表中?insert into ..  select ..order by..
例如: 
 insert   into   tableA   (a,b,c) 
 select   a,b,c   from   tableB   order   by   date 
 可实际执行的时候,并没有按照排序好的顺序依次先后插入到表tableA中
------解决方案--------------------其實在數據庫的位置並沒有多大的關係 
 你select * from TableA 時 order by ..
------解决方案----------------------測試沒問題啊   
 Create Table tableA(a int ,b int ,c int) 
 Create Table tableB(a int ,b int ,c int, [date] datetime)   
 Insert tableB select 1, 2, 3,  '2007-08-02 ' 
 Union All select 2, 2, 3,  '2007-08-01 ' 
 Union All select 3, 2, 3,  '2007-08-06 ' 
 Union All select 5, 2, 3,  '2007-08-05 '   
 insert into tableA (a,b,c) 
 select a,b,c from tableB order by date   
 Select * From tableA 
 GO 
 Drop Table tableA, tableB 
 --Result 
 /* 
 a	b	c 
 2	2	3 
 1	2	3 
 5	2	3 
 3	2	3 
 */
------解决方案--------------------insert into tableA (a,b,c) 
 select a,b,c from tableB order by date 
 這個時候的order by 根本沒有意義
------解决方案--------------------558047(三个代表万睡!八荣八耻万睡!) ( ) 信誉:86  2007-08-16 09:12:36  得分: 0         
    paoluo(一天到晚游泳的鱼)  
 因为你所测试的数据是简单的 
 实际中我的数据是很复杂的 
 所以没有按照排序的顺序insert到另一个表中   
 ------------------ 
 怎麼複雜?原理應該是一致的吧。   
 我這個例子是將你的複雜問題簡化後來測試的,沒發現問題。
------解决方案--------------------order by 会起作用的,是不是主键作用了
------解决方案--------------------数据的存放是根据聚集索引来确定的,如果你的目标表没有建立聚集索引,那数据的存放就没有固定的排序规则。 
------解决方案--------------------CREATE TABLE tmp (ID int identity,ProductNo varchar(15),K varchar(6),L varchar(6),M varchar(6),N varchar(6), 
 O varchar(6),P varchar(6),Q varchar(6),R varchar(6),S varchar(6),T varchar(6),U varchar(6),V varchar(6), 
 W varchar(6),X varchar(6),Y varchar(6),Z varchar(6),AA varchar(6),AB varchar(6),AC varchar(6),AD varchar(6), 
 AE varchar(6),AF varchar(6),AG varchar(6),AH varchar(6),AI varchar(6),AJ varchar(6),AK varchar(6),AL varchar(6), 
 AM varchar(6),AN varchar(6),AO varchar(6),AP varchar(6),AQ varchar(6),TOTAL  varchar(6)) 
 -- 
 GO 
 CREATE CLUSTERED INDEX index_sort 
 on tmp  
 (TOTAL) 
 ----  
 GO 
 BEGIN 
 set @sql1= 'insert into tmp (ProductNo,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,AA,AB,AC,AD,AE,AF,AG,AH,AI,AJ,AK,AL,AM,AN,AO,AP,AQ,TOTAL) ' 
 set @sql1=@sql1+ ' select ProductNo,sum(k) K,sum(l) L,sum(m) M,sum(n) N,sum(o) O,sum(p) P,sum(q) Q,sum(r) R, ' 
 set @sql1=@sql1+ 'sum(s) S,sum(t) T,sum(u) U,sum(v) V,sum(w) W,sum(x) X,sum(y) Y,sum(z) Z,sum(aa) AA, ' 
 set @sql1=@sql1+ 'sum(ab) AB,sum(ac) AC,sum(ad) AD,sum(ae) AE,sum(af) AF,sum(ag) AG,sum(ah) AH,sum(ai) AI, ' 
 set @sql1=@sql1+ 'sum(aj) AJ,sum(ak) AK,sum(al) AL,sum(am) AM,sum(an) AN,sum(ao) AO,sum(ap) AP,sum(aq) AQ, ' 
 set @sql1=@sql1+ 'sum(WasterQtyT) Total ' 
 set @sql1=@sql1+ ' from gwkBaseData ' 
 set @sql1=@sql1+ ' where ProductNo <>  ' ' ' ' and Faculty= ' ' '+@Faculty+ ' ' ' and ProduceDate> = ' ' '+@dtB+ ' ' ' and ProduceDate <= ' ' '+@dtE+ ' ' ' ' 
 set @sql1=@sql1+ ' and ProductNo like  ' 'XV% ' ' ' 
 set @sql1=@sql1+ ' and WasterQtyT> 0 ' 
 set @sql1=@sql1+ ' group by ProductNo ' 
 set @sql1= ' order by total desc '