【问题标题】:SQL combine SELECT statements into two columnsSQL 将 SELECT 语句组合成两列
【发布时间】:2011-10-11 17:32:12
【问题描述】:

两个表 SQL 2005 表

   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

要求:仅给定订单表中的股票代码,从趋势表中生成进入和退出值的单个查询。

代码值将在订单表中提供与趋势表中的数字列相对应的输入和退出整数,该数字列指向查询应输出的实际十进制输入和退出值。

输入值和退出值需要位于不同的列中。以下查询仅生成 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

【问题讨论】:

  • 我看到有人觉得有理由否决 (-1) 这个问题...我想问问为什么...
  • 没有给自己投票,但标题中的 SHOUTING 和 (PLEASE) 有点烦人。
  • 标题中的所有大写字母在语法上都是正确的;连同“请”一起,这可能意味着期望得到帮助,这可能会被视为粗鲁,但这不是本意。我会尝试修改,但要注意的是电子方式可能太过分了,对我来说似乎有点幼稚。

标签: .net sql sql-server-2005


【解决方案1】:

这就是你所追求的吗?

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

【讨论】:

  • 这会在“表”处引发错误。表是“趋势”和“订单”,第二个查询的 T1.Number 也不需要 T2.Number?
  • 是的,但我需要为此添加一个 WHERE 子句.. WHERE (Orders.Ticker = 'EUR') 否则这很好......看不太难我想我没有意识到你可以就那样做吧!
  • 放在最后应该没问题
猜你喜欢
  • 2013-05-31
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2010-11-24
  • 1970-01-01
  • 2014-01-07
相关资源
最近更新 更多