这个语句该如何写,有代码

这个语句该怎么写,有代码Select top 1 TotalAddMoney,TotalTollMoney from (Select top 1 TotalAddMoney,T

这个语句该怎么写,有代码
Select top 1 TotalAddMoney,TotalTollMoney from (  Select top 1 TotalAddMoney,TotalTollMoney,ChangeDate from cntMoneychange where  Userid =  '00000001' order by ChangeDate desc
 Union  Select top 1 TotalAddMoney, TotalTollMoney,StCardDate from Tolldetail where cardid = '00000001' order by StCardDate desc ,stcardtime desc  ) a order by TotalTollMoney desc


上面代码在2005运行正常,但是在2000报错
去掉 stcardtime desc   这个后2000 运行正常,但是去掉后得到的值不是我要的 

现在这个的意思是我从两张表取数据  按时间排序  取得值后  组合两张表,然后再从这张表里面按大小排序 取得较大的那个值    

还有其他写法吗,我是菜鸟   求救  谢谢了
[解决办法]
那用临时表吧,把
select ...
union
select ...
这个查询插入到临时表中 
[解决办法]
Select top 1 TotalAddMoney,TotalTollMoney from ( Select top 1 TotalAddMoney,TotalTollMoney,ChangeDate from cntMoneychange where Userid = '00000001' order by ChangeDate desc
 Union Select top 1 TotalAddMoney, TotalTollMoney,StCardDate as ChangeDate from Tolldetail where cardid = '00000001' order by StCardDate desc ,stcardtime desc ) a order by TotalTollMoney desc