2017-07-07 4 views
0

クエリ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 

FAILED:ライン6:75は 'CURR' で 'として' 近い入力を認識することはできませんはParseExceptionサブクエリのソース

答えて

0

私はこれらの2つのクエリに参加する必要はないと思う、si彼らは水の2滴のようにお互いに非常に似ています。
ピボットクエリのいくつかの種類がこの仕事を行うことができます。それが動作

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 
+0

感謝! –

+0

あなたは私の答えが好きなら、それをアクセントにしてください、ありがとう。 – krokodilko

関連する問題