SELECT RFT.SOFC,
FH_STIME, FH_ETIME, sum(DECODE(FH_FAULT,0,round((FH_ETIME-FH_STIME)*24*60),0))
FROM FT_RTU_FAULT_HST RFT, CN_RTU_INFO SMT
WHERE RFT.EVT_ID in (111,112,113,140) AND
RFT.SOFC = SMT.SOFC AND
RFT.RTUID = SMT.RTUID AND
RFT.LINETYPE = SMT.LINETYPE AND
RFT.SOFC = :sofc_param AND
FH_STIME BETWEEN to_date(:stime_param,'~''YYYYMMDDHH24MISS~') AND to_date(:etime_param ,'~''YYYYMMDDHH24MISS~')
group by RFT.SOFC,
FH_STIME, FH_ETIME,(DECODE(FH_FAULT,0,round((FH_ETIME-FH_STIME)*24*60),0));
--------------------------------------------------------------------------------------------------------------------------------------
이렇게해서 실행시키면 sofc_param, stime_param, etime_param 의 파람값을 입력받아 sofc의 시작시간, 종료시간, 에러시간 값이 여러개가 나오게 되는되요. 여기서 파람값을 입력받은 stime_param(시작시간)부터 etime_param(종료시간)까지의 에러시간을 합계를 내고 싶습니다. 어떻게 하면 좋을까요?? 고수님들의 답변을 기다립니다. -------------------------------------------------------------------------------------------------------------------------------------------------
위의 코드를 실행시킬때 나오는 값
SOFC FH_STIME(시작시간) FH_ETIME(종료시간) 에러시간
2022 2008-12-26 오전 11:17:40 2009-01-28 오후 1:35:33 606
2022 2008-12-27 오후 2:10:10 2009-01-28 오후 1:35:33 315
2022 2009-01-02 오전 9:49:14 2009-01-28 오후 1:35:33 662
2022 2009-01-02 오후 1:57:07 2009-01-28 오후 1:35:33 926
2022 2009-01-15 오전 11:21:46 2009-01-28 오후 1:35:33 978
2022 2009-01-15 오전 11:54:51 2009-01-28 오후 1:35:33 747
2022 2009-01-15 오후 1:50:19 2009-01-28 오후 1:35:33 935
------------------------------------------------------------------------------------------------------------------------------------------------
원하는 값
SOFC FH_STIME(시작시간) FH_ETIME(종료시간) 에러시간
2022 2008-12-26 오전 11:17:40 2009-01-28 오후 1:35:33 5169