|
|
@@ -25,56 +25,56 @@
|
|
|
<update id="CRT_TB_RSE_OD_STAT_HH" parameterType="com.its.dsrc.vo.voStatisticsTime">
|
|
|
<![CDATA[
|
|
|
MERGE INTO TB_RSE_OD_STAT_HH L
|
|
|
- USING (SELECT #{prcs.STAT_DT} AS STAT_DT,
|
|
|
- F_RSE_CTLR_NMBR AS F_RSE_CTLR_NMBR,
|
|
|
- T_RSE_CTLR_NMBR AS T_RSE_CTLR_NMBR,
|
|
|
- #{prcs.DAY_TYPE_CD} AS DAY_TYPE_CD,
|
|
|
- COUNT(1) AS TFVL,
|
|
|
- ROUND(AVG(TRVL_HH), 0) AS TRVL_HH
|
|
|
- FROM (SELECT OBU_IDNT_NMBR, F_RSE_CTLR_NMBR, T_RSE_CTLR_NMBR, F_CLCT_DT, T_CLCT_DT,
|
|
|
- (TO_DATE(T_CLCT_DT, 'YYYYMMDDHH24MISS') - TO_DATE(F_CLCT_DT, 'YYYYMMDDHH24MISS')) * 86400 AS TRVL_HH
|
|
|
- FROM (SELECT OBU_IDNT_NMBR,
|
|
|
- LAG(RSE_CTLR_NMBR) OVER (PARTITION BY OBU_IDNT_NMBR ORDER BY CLCT_DT) AS F_RSE_CTLR_NMBR,
|
|
|
- RSE_CTLR_NMBR AS T_RSE_CTLR_NMBR,
|
|
|
- LAG(CLCT_DT) OVER (PARTITION BY OBU_IDNT_NMBR ORDER BY CLCT_DT) AS F_CLCT_DT,
|
|
|
- CLCT_DT AS T_CLCT_DT
|
|
|
- FROM (SELECT OBU_IDNT_NMBR, CLCT_DT, RSE_CTLR_NMBR AS RSE_CTLR_NMBR
|
|
|
- FROM TB_RSE_OBU_CLCT_HS
|
|
|
- WHERE CLCT_DT BETWEEN #{prcs.FROM_DT} AND #{prcs.TO_DT}
|
|
|
- UNION ALL
|
|
|
- SELECT OBU_IDNT_NMBR, CLCT_DT, RSE_CTLR_NMBR AS RSE_CTLR_NMBR
|
|
|
- FROM TB_RSE_OBU_CLCT_HS
|
|
|
- WHERE CLCT_DT BETWEEN #{prcs.B_FROM_DT} AND #{prcs.B_TO_DT}
|
|
|
- AND (OBU_IDNT_NMBR, CLCT_DT) IN (SELECT OBU_IDNT_NMBR, MAX(CLCT_DT) AS CLCT_DT
|
|
|
- FROM TB_RSE_OBU_CLCT_HS
|
|
|
- WHERE CLCT_DT BETWEEN #{prcs.B_FROM_DT} AND #{prcs.B_TO_DT}
|
|
|
- GROUP BY OBU_IDNT_NMBR)
|
|
|
- )
|
|
|
- )
|
|
|
- WHERE F_RSE_CTLR_NMBR IS NOT NULL
|
|
|
- AND F_RSE_CTLR_NMBR <> T_RSE_CTLR_NMBR
|
|
|
- )
|
|
|
- GROUP BY F_RSE_CTLR_NMBR, T_RSE_CTLR_NMBR) M
|
|
|
- ON ( L.STAT_DT = M.STAT_DT
|
|
|
- AND L.F_RSE_CTLR_NMBR = M.F_RSE_CTLR_NMBR
|
|
|
- AND L.T_RSE_CTLR_NMBR = M.T_RSE_CTLR_NMBR )
|
|
|
- WHEN MATCHED THEN
|
|
|
- UPDATE SET L.DAY_TYPE_CD = M.DAY_TYPE_CD,
|
|
|
- L.TFVL = M.TFVL
|
|
|
- WHEN NOT MATCHED THEN
|
|
|
- INSERT (
|
|
|
- L.STAT_DT,
|
|
|
- L.F_RSE_CTLR_NMBR,
|
|
|
- L.T_RSE_CTLR_NMBR,
|
|
|
- L.DAY_TYPE_CD,
|
|
|
- L.TFVL
|
|
|
- ) VALUES (
|
|
|
- M.STAT_DT,
|
|
|
- M.F_RSE_CTLR_NMBR,
|
|
|
- M.T_RSE_CTLR_NMBR,
|
|
|
- M.DAY_TYPE_CD,
|
|
|
- M.TFVL
|
|
|
+ USING (SELECT #{prcs.STAT_DT} AS STAT_DT,
|
|
|
+ F_RSE_CTLR_NMBR AS F_RSE_CTLR_NMBR,
|
|
|
+ T_RSE_CTLR_NMBR AS T_RSE_CTLR_NMBR,
|
|
|
+ #{prcs.DAY_TYPE_CD} AS DAY_TYPE_CD,
|
|
|
+ COUNT(1) AS TFVL,
|
|
|
+ ROUND(AVG(TRVL_HH), 0) AS TRVL_HH
|
|
|
+ FROM (SELECT OBU_IDNT_NMBR, F_RSE_CTLR_NMBR, T_RSE_CTLR_NMBR, F_CLCT_DT, T_CLCT_DT,
|
|
|
+ (TO_DATE(T_CLCT_DT, 'YYYYMMDDHH24MISS') - TO_DATE(F_CLCT_DT, 'YYYYMMDDHH24MISS')) * 86400 AS TRVL_HH
|
|
|
+ FROM (SELECT OBU_IDNT_NMBR,
|
|
|
+ LAG(RSE_CTLR_NMBR) OVER (PARTITION BY OBU_IDNT_NMBR ORDER BY CLCT_DT) AS F_RSE_CTLR_NMBR,
|
|
|
+ RSE_CTLR_NMBR AS T_RSE_CTLR_NMBR,
|
|
|
+ LAG(CLCT_DT) OVER (PARTITION BY OBU_IDNT_NMBR ORDER BY CLCT_DT) AS F_CLCT_DT,
|
|
|
+ CLCT_DT AS T_CLCT_DT
|
|
|
+ FROM (SELECT OBU_IDNT_NMBR, CLCT_DT, RSE_CTLR_NMBR AS RSE_CTLR_NMBR
|
|
|
+ FROM TB_RSE_OBU_CLCT_HS
|
|
|
+ WHERE CLCT_DT BETWEEN #{prcs.FROM_DT} AND #{prcs.TO_DT}
|
|
|
+ UNION ALL
|
|
|
+ SELECT OBU_IDNT_NMBR, CLCT_DT, RSE_CTLR_NMBR AS RSE_CTLR_NMBR
|
|
|
+ FROM TB_RSE_OBU_CLCT_HS
|
|
|
+ WHERE CLCT_DT BETWEEN #{prcs.B_FROM_DT} AND #{prcs.B_TO_DT}
|
|
|
+ AND (OBU_IDNT_NMBR, CLCT_DT) IN (SELECT OBU_IDNT_NMBR, MAX(CLCT_DT) AS CLCT_DT
|
|
|
+ FROM TB_RSE_OBU_CLCT_HS
|
|
|
+ WHERE CLCT_DT BETWEEN #{prcs.B_FROM_DT} AND #{prcs.B_TO_DT}
|
|
|
+ GROUP BY OBU_IDNT_NMBR)
|
|
|
+ )
|
|
|
+ )
|
|
|
+ WHERE F_RSE_CTLR_NMBR IS NOT NULL
|
|
|
+ AND F_RSE_CTLR_NMBR <> T_RSE_CTLR_NMBR
|
|
|
)
|
|
|
+ GROUP BY F_RSE_CTLR_NMBR, T_RSE_CTLR_NMBR) M
|
|
|
+ ON ( L.STAT_DT = M.STAT_DT
|
|
|
+ AND L.F_RSE_CTLR_NMBR = M.F_RSE_CTLR_NMBR
|
|
|
+ AND L.T_RSE_CTLR_NMBR = M.T_RSE_CTLR_NMBR )
|
|
|
+ WHEN MATCHED THEN
|
|
|
+ UPDATE SET L.DAY_TYPE_CD = M.DAY_TYPE_CD,
|
|
|
+ L.TFVL = M.TFVL
|
|
|
+ WHEN NOT MATCHED THEN
|
|
|
+ INSERT (
|
|
|
+ L.STAT_DT,
|
|
|
+ L.F_RSE_CTLR_NMBR,
|
|
|
+ L.T_RSE_CTLR_NMBR,
|
|
|
+ L.DAY_TYPE_CD,
|
|
|
+ L.TFVL
|
|
|
+ ) VALUES (
|
|
|
+ M.STAT_DT,
|
|
|
+ M.F_RSE_CTLR_NMBR,
|
|
|
+ M.T_RSE_CTLR_NMBR,
|
|
|
+ M.DAY_TYPE_CD,
|
|
|
+ M.TFVL
|
|
|
+ )
|
|
|
]]>
|
|
|
</update>
|
|
|
|