SELECT COUNT(*) FROM
(
SELECT * FROM
(
SELECT
AM.NAME, AM.STARTTIME,
LAG(AM.STARTTIME) over (order by AM.STARTDATE, AM.ENDDATE) LAGSTARTTIME,
LEAD(AM.STARTTIME) over (order by AM.STARTDATE, AM.ENDDATE) LEADSTARTTIME,
AM.ENDTTIME,
LAG(AM.ENDTTIME, ) over (order by AM.STARTDATE, AM.ENDDATE) LAGENDTTIME, ,
LEAD(AM.ENDTTIME, ) over (order by AM.STARTDATE, AM.ENDDATE) LEADENDTTIME, ,
FROM TIMETEMP AM
WHERE AM.NAME = A기준인<변수>
order by AM.STARTDATE, AM.ENDDATE
)BM
WHERE (BM.LEADSTARTTIME = BM.ENDTIME OR (BM.LEADSTARTTIME is null and BM.STARTTIME=BM.LAGENDTIME))
group by BM.NAME
)
WHERE ....
대략적으로 이런 쿼리를 plsql function을 만들어서 그안에서 돌릴려고 합니다.
쿼리만 돌렸을는 잘 실행되나 function 안에선 실행이 안되어
안에서 부터 확인해본 결과
WHERE (BM.LEADSTARTTIME = BM.ENDTIME OR (BM.LEADSTARTTIME is null and BM.STARTTIME=BM.LAGENDTIME))
윈도우 함수를 네이밍하여 사용하는곳에서 제대로 실행이 안됩니다.
조건절에 네이밍하여서도 못쓰는게 맞는지 아니면 제가 멀 잘못하고 있는지 궁금합니다.