CREATE PROCEDURE Kc_Statistics_01AS
select Kc_a5_1 as '项目名称', Kc_a5_2 as '型号', Kc_a5_3 as '规格', (select sum(Kc_a4_13) from Kc_a4 where Kc_a4_17 = Kc_a5_0) AS '销售额' into #TTT from Kc_a5  
select * from #TTT order by '销售额'
GO在读取表TTT时,为什么不按销售额排序??请高手指点

解决方案 »

  1.   

    CREATE PROCEDURE Kc_Statistics_01 AS 
    select Kc_a5_1 as '项目名称', Kc_a5_2 as '型号', Kc_a5_3 as '规格', (select sum(Kc_a4_13) from Kc_a4 where Kc_a4_17 = Kc_a5_0) AS '销售额' into #TTT from Kc_a5  
    select * from #TTT order by '销售额' DESC -- 默认情况下是ASC升序排列,只有指定DESC才是降序排列的,
     
    GO 
      

  2.   

    你是在写入临时表的时候排序?
    还是要在写入临时表后查询出来排序?
    这两个问题要搞清楚,
    如果在写入的时候要求排序的话,
    CREATE PROCEDURE Kc_Statistics_01 AS 
    select Kc_a5_1 as '项目名称', Kc_a5_2 as '型号', Kc_a5_3 as '规格', (select sum(Kc_a4_13) from Kc_a4 where Kc_a4_17 = Kc_a5_0) AS '销售额' into #TTT from Kc_a5  ORDER BY 4 DESC -- 写入是排序,
    select * from #TTT order by '销售额'  
    GO 
      

  3.   

    可能排序规则问题,或者你在select语句中保护其他的排序,能否把错误的实例及记过显示出来?use Test
    go
    If Object_id('tempdb..#') Is Not null
    Drop Table #
    Select 
    name,object_id,(Select Sum(1) From sys.columns where object_id=a.object_id) As 统计 
    Into #
    From sys.tables a
    Select * From # Order BY 统计 Desc
    Select * From # Order BY 统计 Asc/*
    name object_id 统计
    -----------------------
    T2 1253579504 7
    Test 862626116 5
    E 14623095 3
    D 2114106572 3
    A 2050106344 3
    B 2066106401 3
    ... ...
    *//*
    name object_id 统计
    -----------------------
    ... ...
    D 2114106572 3
    A 2050106344 3
    B 2066106401 3
    E 14623095 3
    Test 862626116 5
    T2 1253579504 7
    */
      

  4.   

    Order By 在默认情况下是ASC升序排列
      

  5.   


    --排序应该是指定字段,而不是给个字符串:
    select * from #TTT order by 销售额 --去掉引号 
    declare @t table(销售额 int)
    insert into @t select 20
    insert into @t select 10
    insert into @t select 40select * from @t order by '销售额' --错误
    select * from @t order by 销售额 --正确