oracle子查询无法正常工作

时间:2013-11-29 23:58:59

标签: sql oracle

试图找出我在这里缺少的东西。我有两个表,resortaccommodations。试图获得与提供此选项的度假村相关的每晚最昂贵的费用:

SELECT name,resort_id
  FROM resort
  WHERE resort_id IN ( SELECT MAX(cost_per_night)
                         FROM accommodations
                     );

以上返回空白列。

1 个答案:

答案 0 :(得分:0)

可以沿着这些方向做点什么:

SELECT name, resort_id
  FROM resort
  WHERE resort_id IN ( SELECT resort_id
                         FROM accomodations
                         WHERE cost_per_night = ( SELECT MAX(cost_per_night)
                                                   FROM accommodations
                                                )
                     )

您的查询发现resort_id等于价格而非resort_id等于resort_id且价格最高。另请注意,可能有多个具有相同最高价格的度假村,因此IN。否则可以通过使用rownum = 1的desc执行订单。

更新:包括价格:

SELECT r.name, r.resort_id, a.cost_per_night
  FROM accomodations a
  JOIN resort r ON (a.resort_id = r.resort_id)
  WHERE a.cost_per_night = ( SELECT MAX(cost_per_night)
                               FROM accommodations
                           )