加入以下查询时遇到异常,有人可以帮我加入查询吗?

时间:2017-07-07 13:17:05

标签: sql oracle oracle11g oracle10g oracle-sqldeveloper

查询1:

  select col1,sum(col2) from tablea src 
  join 
  (select distinct col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN ) 
   From tableb) trgt
   where RN=1 and src.col3 = trgt.col3 group by col1

查询2:

 select col1,sum(col2) from tablea src 
 join 
 (select distinct col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN ) 
 From tableb) trgt
 where RN=2 and src.col3 = trgt.col3 group by col1

加入查询:

   select * 
   from (Query 1)  curr join (Query 2) 
    prev on curr.col1 = prev.col1

失败:ParseException行6:75无法识别子查询源中'as''curr'附近的输入

1 个答案:

答案 0 :(得分:0)

我认为没有必要加入这两个问题,因为它们彼此非常相似,就像两滴水一样。
某种透视查询可以完成这项工作:

SELECT col1,
       SUM( CASE WHEN rn=1 THEN col2 END ),
       SUM( CASE WHEN rn=2 THEN col2 END )
FROM  tablea src 
JOIN (
   select col3,ROW_NUMBER() OVER(ORDER BY col3 desc) as RN ) 
   From tableb
) trgt
ON src.col3 = trgt.col3 AND trgt.rn <= 2
GROUP BY col1