ASE15 버전입니다.
이버전에서는 인라인 뷰가 지원 가능한걸로 알고 있습니다.
아래와 같은 쿼리를 인라인 뷰와 서브쿼리로 변경을
하려면 어떻게 해야 하나요
조건은 FROM 절에는 TAB3 만 있어야 하구요
where 절 밑에 TAB2,TAB1(tempdb)는 인라인 뷰와 서브쿼리로
처리를 해야 합니다.
초보라서요....
SELECT A, MAX(B) B
INTO tempdb..TAB1
FROM TAB1
WHERE YN = 'Y'
GROUP BY A
ORDER BY 1
tempdb.TAB1는 임시테이블로 매번 생성
SELECT B.* FROM TAB2 A,TAB3 B,tempdb..TAB1 C
WHERE A.No = B.AcctNo
AND A.FD= C.FD
AND DATEDIFF(YY, C.B, GETDATE()) =1
제가 궁금 한것은 From 절에는 TAB3 만 걸리고
TAB2,TAB1 은 where 절 밑으로 처리가 가능한지에 대해서요
예를 들면
select B.* from TAB3 B
where exists(select 1 from TAB2,
( SELECT A, MAX( B ) B
FROM TAB1
WHERE YN = 'Y'
GROUP BY A
ORDER BY 1
) C
WHERE A.No = B.AcctNo
AND A.FD = C.FD
AND DATEDIFF( YY, C.B, GETDATE( ) ) =1
뮈 이런식으로요
실제로 해보니 원본과 변형본이 건수가 달라서요
|