我正在编写三个不同的查询,并希望结果全部为单行
示例:
SELECT top 1 processdate as gold FROM goldchart WHERE instrument = 'gold'
order by processdate desc
SELECT top 1 processdate as silver FROM silverchart WHERE instrument = 'silver'
order by processdate desc
SELECT top 1 processdate as usoil FROM usoilchart WHERE instrument = 'usoil'
order by processdate desc
我得到的结果是:
gold
2014-04-10
silver
2014-01-11
usoil
2014-02-14
The result i need is :
gold silver usoil
2014-04-10 2014-01-11 2014-02-14
需要合并所有三个查询并将结果作为一行。
答案 0 :(得分:1)
我认为SQL服务器允许你这样做,而不是......
Select
(SELECT top 1 processdate FROM goldchart WHERE instrument = 'gold' order by processdate desc) as gold,
(SELECT top 1 processdate FROM silverchart WHERE instrument = 'silver' order by processdate desc) as silver,
(SELECT top 1 processdate FROM usoilchart WHERE instrument = 'usoil' order by processdate desc) as usoil
答案 1 :(得分:1)
您可以将select语句包装在括号中并将它们组合在一起
SELECT
(SELECT top 1 processdate FROM goldchart WHERE instrument = 'gold'
order by processdate desc) as gold,
(SELECT top 1 processdate FROM silverchart WHERE instrument = 'silver'
order by processdate desc) as silver,
(SELECT top 1 processdate FROM usoilchart WHERE instrument = 'usoil'
order by processdate desc) as usoil
答案 2 :(得分:0)
这有效,至少在SQLServer上。
SELECT TOP 1 gc.processdate AS gold, sc.processdate AS silver, uc.processdate AS usoil
FROM goldchart gc, silverchart sc, usoilchart uc
ORDER BY gc.processdate DESC, sc.processdate DESC, uc.processdate DESC