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时,为什么不按销售额排序??请高手指点
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时,为什么不按销售额排序??请高手指点
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
还是要在写入临时表后查询出来排序?
这两个问题要搞清楚,
如果在写入的时候要求排序的话,
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
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
*/
--排序应该是指定字段,而不是给个字符串:
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 销售额 --正确