0

我正在尝试在 Oracle SQL Developer 中运行以下查询,但它无法识别正确的括号,而且我只需要返回第一行。

SELECT 'PX'
FROM CME_NYMEX_FUTURES
    where SYM='NG' AND CME_NYMEX_FUTURES.CONTRACT_MONTH = '6' and CME_NYMEX_FUTURES.CONTRACT_YEAR = '2013'
      and OPR_DATE=(select opr_date FROM CME_NYMEX_FUTURES where SYM='NG' and TYP='6' and CME_NYMEX_FUTURES.CONTRACT_MONTH = '6' 
      and CME_NYMEX_FUTURES.CONTRACT_YEAR = '2013' order by OPR_DATE desc) and TYP='6' 
ORDER BY CONTRACT_YEAR asc, CONTRACT_MONTH asc

当我尝试以下操作时,结果不正确 - 我应该取回一个数据点,而不是返回“PX”:

SELECT 'PX'
FROM CME_NYMEX_FUTURES
    where SYM='NG' AND CME_NYMEX_FUTURES.CONTRACT_MONTH = '6' and CME_NYMEX_FUTURES.CONTRACT_YEAR = '2013'
      and OPR_DATE=(select opr_date FROM CME_NYMEX_FUTURES where SYM='NG' and TYP='6' and CME_NYMEX_FUTURES.CONTRACT_MONTH = '6' 
      and CME_NYMEX_FUTURES.CONTRACT_YEAR = '2013' and ROWNUM =1) and TYP='6' 
ORDER BY CONTRACT_YEAR asc, CONTRACT_MONTH asc, OPR_DATE desc

谢谢。

4

1 回答 1

0

我仍在尝试破译您的查询,但实际上是哪一列保存了您的数据点?你得到 PX 是因为你把一个常数 'PX' 作为选择参考的一部分,而不是把一个结果。

您在 CME_NYMEX_FUTURES 中为您的数据点拥有的任何列都应在此处列出,而不是“PX”。如果我在这里错过了你的观点,请告诉我们。

于 2013-07-11T21:30:28.677 回答