select 按日期编号排序,该怎么解决

select 按日期编号排序
有数据表AAA,列a,如下:
a  
erw
dg
sdg
dsf
gfds
.....


现在我想用select 语句搜索出如下结果,编号按当天的日期+001,002,003这样,应该如何写语句?
a                          sn
erw                    20150112001
dg                      20150112002
sdg                    20150112003
dsf                     20150112004
gfds                   20150112005
....                        ....

------解决思路----------------------
SELECT a,
CONVERT(VARCHAR(8),GETDATE(),112)+
RIGHT('00'+CAST(ROW_NUMBER()OVER(ORDER BY GETDATE())AS VARCHAR(10)),3)sn
FROM AAA

------解决思路----------------------
with T as (select a,rn=row_number() over (order by getdate()) from AAA)


select a,sn=convert(varchar(10),getdate(),112)+replicate('0',3-len(rn))+convert(varchar,rn) from T
------解决思路----------------------
试试这个;

create table AAA(a varchar(20))

insert into AAA
select 'erw' union all
select 'dg' union all
select 'sdg' union all
select 'dsf' union all
select 'gfds'
go

select a,
       convert(varchar(8),getdate(),112)+
       right('00'+cast(ROW_NUMBER() over(order by @@spid) as varchar(10)),3) sn
from AAA
/*
a sn
erw 20150112001
dg 20150112002
sdg 20150112003
dsf 20150112004
gfds 20150112005
*/

------解决思路----------------------
sql code
引用
with sn(a) as
(select 'a' union all
 select 'erw' union  all
 select 'dg' union all
 select 'sdg')
select *,CONVERT(char(8),getdate(),112)
  +right('00'+cast(ROW_NUMBER()over(order by getdate()) as varchar(3)),3) from sn