首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

多个表的合并后(union all),怎么获得前 10 条记录?

2012-02-23 
多个表的合并后(union all),如何获得前 10 条记录???比如如下两个表合并后,我如何能用得到钱10条语句:sele

多个表的合并后(union all),如何获得前 10 条记录???
比如如下两个表合并后,我如何能用得到钱10条语句:
select 姓名=aname,支出钱=amoney,收入钱='',时间=atime from a union all select bname,支出钱='',收入钱=bmoney,时间=btime from b order by 时间

声明我希望一句话就能搞定,不想用存储过程`~~~

[解决办法]
select 姓名=aname,支出钱=amoney,收入钱='',时间=atime from a 
inner join 
(select top 10 [time]
from
(select 
atime as [time] from a 
union 
select btime as [time] from b order by [time]) c)
d on a.atime = d.[time]

union
select bname,支出钱='',收入钱=bmoney,时间=btime from b 
inner join 
(select top 10 [time]
from
(select 
atime as [time] from a 
union 
select btime as [time] from b order by [time]) c)
d on b.btime = d.[time]
[解决办法]

SQL code
SELECT TOP 10 * FROM (select 姓名=aname,支出钱=amoney,收入钱='',时间=atime from a union all select bname,支出钱='',收入钱=bmoney,时间=btime from b order by 时间 ) as temp
[解决办法]
楼上的应该可以
[解决办法]
select top 10 * from 
(select 姓名=aname,支出钱=amoney,收入钱='',时间=atime from a union all select bname,支出钱='',收入钱=bmoney,时间=btime from b order by 时间 
) as a
[解决办法]
select top 10 * from (select 姓名=aname,支出钱=amoney,收入钱='',时间=atime from a union all select bname,支出钱='',收入钱=bmoney,时间=btime from b )
as AA
order by 时间 

热点排行