2011-07-23 99 views
0

两个表SQL 2005表结合SQL SELECT语句为两列

Trend Table 
    Enter Exit Number 
    .01 .01  0 
    .02 .02  1 
    .03 .03  2 
    .04 .04  3 

    Orders Table 
    Ticker Enter Exit 
    EUR  0  1 
    GBP  2  3 

要求:单个查询产生的输入,并从订单表只给出股票代码从趋势表的出口值。

一个体育讯北京时间价值将在Orders表中对应于趋势表数列,它指向实际十进制进入和退出值查询应输出提供进入和退出的整数。

进入和退出的值必须是在单独的列。以下查询产生值仅为1列的输出(参见输出)

SELECT T.Enter 
FROM Trend AS T INNER JOIN Orders AS O ON O.Enter = T.Number 
WHERE (O.Ticker = 'EUR') 
UNION 
SELECT D.Exit 
FROM Trend AS D INNER JOIN Orders AS F ON F.Exit= D.Number 
WHERE (F.Ticker = 'EUR') 

OUTPUT: 
Exit 
0.01 
0.02 
+0

我看到有人觉得有一个理由否决(-1)这个问题......我想询问为什么... – CraigJSte

+0

没有downvote自己,但在标题叫喊和(请)有点烦人。 –

+0

标题中的所有大写在语法上都是正确的;随着'请'这可能意味着期望的援助,可以被视为粗鲁,但这不是意图。我会尝试修改,但是有一种说法,即电子礼仪可能会被采用太多,而且对我而言似乎有些幼稚。 – CraigJSte

回答

2

这是您所追求的?

SELECT Orders.Ticker, T1.Enter, T2.Exit 
FROM Orders 
INNER JOIN Trend T1 ON Orders.Enter = T1.Number 
INNER JOIN Trend T2 ON Orders.Exit = T2.Number 
+0

这将引发错误在“表”的表是“趋势”和“订单”也没有T1.Number在第二次查询需要被T2.Number? – CraigJSte

+0

我的错误。修正后的SQL – Eddy

+0

是的,但我需要添加一个WHERE子句这个.. WHERE(Orders.Ticker =“EUR”),否则它的好......看不那么辛苦,我想我不知道你能做到这一点像! – CraigJSte