VdsDtctTfvlStatMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.its.api.op.repository.vds.VdsDtctTfvlStatMapper">
  4. <select id="findAllHourStatByDateRange" parameterType="java.util.HashMap" resultType="com.its.api.op.model.dto.vds.VdsDtctTfvlHourDto">
  5. <![CDATA[
  6. SELECT LY.VDS_CTLR_NMBR, LY.VDS_CTLR_ID, LY.LCTN, LY.DTCT_NMBR, LY.ISTL_LANE, LY.VDS_DTCT_NM,
  7. LY.DTCT_TYPE, LY.DTCT_TYPE_NM, LX.TRFTYPE, LY.VDS_CTLR_NMBR || '.' || LY.LCTN AS NM,
  8. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(TOTTFVL, 0, 0, TOTTFVL)) AS TOTTFVL,
  9. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(AVGTFVL, 0, 0, AVGTFVL)) AS AVGTFVL,
  10. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L00, NULL, 0, L00)) AS C00,
  11. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L01, NULL, 0, L01)) AS C01,
  12. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L02, NULL, 0, L02)) AS C02,
  13. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L03, NULL, 0, L03)) AS C03,
  14. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L04, NULL, 0, L04)) AS C04,
  15. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L05, NULL, 0, L05)) AS C05,
  16. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L06, NULL, 0, L06)) AS C06,
  17. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L07, NULL, 0, L07)) AS C07,
  18. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L08, NULL, 0, L08)) AS C08,
  19. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L09, NULL, 0, L09)) AS C09,
  20. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L10, NULL, 0, L10)) AS C10,
  21. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L11, NULL, 0, L11)) AS C11,
  22. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L12, NULL, 0, L12)) AS C12,
  23. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L13, NULL, 0, L13)) AS C13,
  24. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L14, NULL, 0, L14)) AS C14,
  25. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L15, NULL, 0, L15)) AS C15,
  26. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L16, NULL, 0, L16)) AS C16,
  27. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L17, NULL, 0, L17)) AS C17,
  28. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L18, NULL, 0, L18)) AS C18,
  29. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L19, NULL, 0, L19)) AS C19,
  30. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L20, NULL, 0, L20)) AS C20,
  31. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L21, NULL, 0, L21)) AS C21,
  32. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L22, NULL, 0, L22)) AS C22,
  33. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L23, NULL, 0, L23)) AS C23
  34. FROM (
  35. SELECT GROUPING(DTCT_NMBR) AS GROUPING_DTCT_NMBR,
  36. GROUPING(ISTL_LANE) AS GROUPING_ISTL_LANE,
  37. GROUPING(TRFTYPE) AS GROUPING_TRFTYPE,
  38. CASE WHEN GROUPING(DTCT_NMBR ) = 1 THEN '검지기' ELSE DTCT_NMBR END AS GROUP_DTCT_NMBR,
  39. CASE WHEN GROUPING(ISTL_LANE) = 1 THEN '차로' ELSE ISTL_LANE END AS GROUP_ISTL_LANE,
  40. CASE WHEN GROUPING(TRFTYPE) = 1 THEN '소계' ELSE TRFTYPE END AS GROUP_TRFTYPE,
  41. DTCT_NMBR, ISTL_LANE, TRFTYPE,
  42. SUM(TFVL) TOTTFVL,
  43. ROUND(AVG(TFVL), 0) AVGTFVL,
  44. SUM(DECODE(STATHOUR, '00', TFVL)) AS L00,
  45. SUM(DECODE(STATHOUR, '01', TFVL)) AS L01,
  46. SUM(DECODE(STATHOUR, '02', TFVL)) AS L02,
  47. SUM(DECODE(STATHOUR, '03', TFVL)) AS L03,
  48. SUM(DECODE(STATHOUR, '04', TFVL)) AS L04,
  49. SUM(DECODE(STATHOUR, '05', TFVL)) AS L05,
  50. SUM(DECODE(STATHOUR, '06', TFVL)) AS L06,
  51. SUM(DECODE(STATHOUR, '07', TFVL)) AS L07,
  52. SUM(DECODE(STATHOUR, '08', TFVL)) AS L08,
  53. SUM(DECODE(STATHOUR, '09', TFVL)) AS L09,
  54. SUM(DECODE(STATHOUR, '10', TFVL)) AS L10,
  55. SUM(DECODE(STATHOUR, '11', TFVL)) AS L11,
  56. SUM(DECODE(STATHOUR, '12', TFVL)) AS L12,
  57. SUM(DECODE(STATHOUR, '13', TFVL)) AS L13,
  58. SUM(DECODE(STATHOUR, '14', TFVL)) AS L14,
  59. SUM(DECODE(STATHOUR, '15', TFVL)) AS L15,
  60. SUM(DECODE(STATHOUR, '16', TFVL)) AS L16,
  61. SUM(DECODE(STATHOUR, '17', TFVL)) AS L17,
  62. SUM(DECODE(STATHOUR, '18', TFVL)) AS L18,
  63. SUM(DECODE(STATHOUR, '19', TFVL)) AS L19,
  64. SUM(DECODE(STATHOUR, '20', TFVL)) AS L20,
  65. SUM(DECODE(STATHOUR, '21', TFVL)) AS L21,
  66. SUM(DECODE(STATHOUR, '22', TFVL)) AS L22,
  67. SUM(DECODE(STATHOUR, '23', TFVL)) AS L23
  68. FROM (
  69. SELECT TO_CHAR(Y.DTCT_NMBR) AS DTCT_NMBR, Y.VDS_DTCT_NM,
  70. TO_CHAR(Y.ISTL_LANE) AS ISTL_LANE, X.TRFTYPE, X.STATHOUR, X.TFVL
  71. FROM (SELECT /*+ INDEX(A PK_VDS_DTCT_HH_STAT) */
  72. 'DTCT' AS TRFTYPE,
  73. A.DTCT_NMBR AS DTCT_NMBR, SUBSTR(A.STAT_DT, 9, 2) AS STATHOUR,
  74. A.TFVL AS TFVL
  75. FROM TB_VDS_DTCT_HH_STAT A
  76. WHERE 1=1
  77. AND A.STAT_DT BETWEEN #{FROM_DT} AND #{TO_DT}
  78. ) X,
  79. TB_VDS_DTCT_MSTR Y
  80. WHERE 1=1
  81. AND Y.DEL_YN = 'N'
  82. AND Y.DTCT_NMBR = X.DTCT_NMBR
  83. )
  84. GROUP BY ROLLUP (DTCT_NMBR, ISTL_LANE, TRFTYPE)
  85. HAVING GROUPING(TRFTYPE) = 0
  86. ) LX,
  87. (
  88. SELECT A.CTLR_MNGM_NMBR AS VDS_CTLR_NMBR, A.VDS_CTLR_ID, A.LCTN AS LCTN, B.DTCT_NMBR,
  89. B.ISTL_LANE, B.VDS_DTCT_NM, B.DTCT_TYPE_CD AS DTCT_TYPE,
  90. (SELECT CMMN_CD_KOR_NM
  91. FROM TB_CMMN_CD
  92. WHERE CMMN_CLSF_CD = 'ACD'
  93. AND CMMN_CD = B.DTCT_TYPE_CD) AS DTCT_TYPE_NM
  94. FROM TB_VDS_CTLR A,
  95. TB_VDS_DTCT_MSTR B
  96. WHERE 1=1
  97. AND A.DEL_YN = 'N'
  98. AND B.DEL_YN = 'N'
  99. AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR
  100. ) LY
  101. WHERE LY.DTCT_NMBR = LX.DTCT_NMBR
  102. ORDER BY LY.VDS_CTLR_NMBR, LY.DTCT_NMBR, LY.ISTL_LANE
  103. ]]>
  104. </select>
  105. <select id="findAllDayStatByDateRange" parameterType="java.util.HashMap" resultType="com.its.api.op.model.dto.vds.VdsDtctTfvlDayDto">
  106. <![CDATA[
  107. SELECT LY.VDS_CTLR_NMBR, LY.VDS_CTLR_ID, LY.LCTN, LY.DTCT_NMBR, LY.ISTL_LANE, LY.VDS_DTCT_NM,
  108. LY.DTCT_TYPE, LY.DTCT_TYPE_NM, LX.TRFTYPE, LY.VDS_CTLR_NMBR || '.' || LY.LCTN AS NM,
  109. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(TOTTFVL, 0, 0, TOTTFVL)) AS TOTTFVL,
  110. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(AVGTFVL, 0, 0, AVGTFVL)) AS AVGTFVLX,
  111. DECODE(NVL(L01,0)+NVL(L02,0)+NVL(L03,0)+NVL(L04,0)+NVL(L05,0)+NVL(L06,0)+NVL(L07,0)+
  112. NVL(L08,0)+NVL(L09,0)+NVL(L10,0)+NVL(L11,0)+NVL(L12,0)+NVL(L13,0)+NVL(L14,0)+
  113. NVL(L15,0)+NVL(L16,0)+NVL(L17,0)+NVL(L18,0)+NVL(L19,0)+NVL(L20,0)+NVL(L21,0)+
  114. NVL(L22,0)+NVL(L23,0)+NVL(L24,0)+NVL(L25,0)+NVL(L26,0)+NVL(L27,0)+NVL(L28,0)+
  115. NVL(L29,0)+NVL(L30,0)+NVL(L31,0), 0, 0,
  116. ROUND(
  117. (NVL(L01,0)+NVL(L02,0)+NVL(L03,0)+NVL(L04,0)+NVL(L05,0)+NVL(L06,0)+NVL(L07,0)+
  118. NVL(L08,0)+NVL(L09,0)+NVL(L10,0)+NVL(L11,0)+NVL(L12,0)+NVL(L13,0)+NVL(L14,0)+
  119. NVL(L15,0)+NVL(L16,0)+NVL(L17,0)+NVL(L18,0)+NVL(L19,0)+NVL(L20,0)+NVL(L21,0)+
  120. NVL(L22,0)+NVL(L23,0)+NVL(L24,0)+NVL(L25,0)+NVL(L26,0)+NVL(L27,0)+NVL(L28,0)+
  121. NVL(L29,0)+NVL(L30,0)+NVL(L31,0)) /
  122. (DECODE(L01,NULL,0,1)+DECODE(L02,NULL,0,1)+DECODE(L03,NULL,0,1)+
  123. DECODE(L04,NULL,0,1)+DECODE(L05,NULL,0,1)+DECODE(L06,NULL,0,1)+
  124. DECODE(L07,NULL,0,1)+DECODE(L08,NULL,0,1)+DECODE(L09,NULL,0,1)+
  125. DECODE(L10,NULL,0,1)+DECODE(L11,NULL,0,1)+DECODE(L12,NULL,0,1)+
  126. DECODE(L13,NULL,0,1)+DECODE(L14,NULL,0,1)+DECODE(L15,NULL,0,1)+
  127. DECODE(L16,NULL,0,1)+DECODE(L17,NULL,0,1)+DECODE(L18,NULL,0,1)+
  128. DECODE(L19,NULL,0,1)+DECODE(L20,NULL,0,1)+DECODE(L21,NULL,0,1)+
  129. DECODE(L22,NULL,0,1)+DECODE(L23,NULL,0,1)+DECODE(L24,NULL,0,1)+
  130. DECODE(L25,NULL,0,1)+DECODE(L26,NULL,0,1)+DECODE(L27,NULL,0,1)+
  131. DECODE(L28,NULL,0,1)+DECODE(L29,NULL,0,1)+DECODE(L30,NULL,0,1)+
  132. DECODE(L31,NULL,0,1)), 0)) AS AVGTFVL,
  133. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L01, NULL, 0, L01)) AS C01,
  134. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L02, NULL, 0, L02)) AS C02,
  135. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L03, NULL, 0, L03)) AS C03,
  136. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L04, NULL, 0, L04)) AS C04,
  137. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L05, NULL, 0, L05)) AS C05,
  138. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L06, NULL, 0, L06)) AS C06,
  139. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L07, NULL, 0, L07)) AS C07,
  140. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L08, NULL, 0, L08)) AS C08,
  141. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L09, NULL, 0, L09)) AS C09,
  142. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L10, NULL, 0, L10)) AS C10,
  143. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L11, NULL, 0, L11)) AS C11,
  144. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L12, NULL, 0, L12)) AS C12,
  145. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L13, NULL, 0, L13)) AS C13,
  146. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L14, NULL, 0, L14)) AS C14,
  147. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L15, NULL, 0, L15)) AS C15,
  148. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L16, NULL, 0, L16)) AS C16,
  149. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L17, NULL, 0, L17)) AS C17,
  150. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L18, NULL, 0, L18)) AS C18,
  151. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L19, NULL, 0, L19)) AS C19,
  152. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L20, NULL, 0, L20)) AS C20,
  153. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L21, NULL, 0, L21)) AS C21,
  154. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L22, NULL, 0, L22)) AS C22,
  155. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L23, NULL, 0, L23)) AS C23,
  156. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L24, NULL, 0, L24)) AS C24,
  157. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L25, NULL, 0, L25)) AS C25,
  158. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L26, NULL, 0, L26)) AS C26,
  159. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L27, NULL, 0, L27)) AS C27,
  160. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L28, NULL, 0, L28)) AS C28,
  161. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L29, NULL, 0, L29)) AS C29,
  162. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L30, NULL, 0, L30)) AS C30,
  163. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L31, NULL, 0, L31)) AS C31
  164. FROM (
  165. SELECT GROUPING(DTCT_NMBR) AS GROUPING_DTCT_NMBR,
  166. GROUPING(ISTL_LANE) AS GROUPING_ISTL_LANE,
  167. GROUPING(TRFTYPE) AS GROUPING_TRFTYPE,
  168. CASE WHEN GROUPING(DTCT_NMBR ) = 1 THEN '검지기' ELSE DTCT_NMBR END AS GROUP_DTCT_NMBR,
  169. CASE WHEN GROUPING(ISTL_LANE) = 1 THEN '차로' ELSE ISTL_LANE END AS GROUP_ISTL_LANE,
  170. CASE WHEN GROUPING(TRFTYPE) = 1 THEN '소계' ELSE TRFTYPE END AS GROUP_TRFTYPE,
  171. DTCT_NMBR, ISTL_LANE, TRFTYPE,
  172. SUM(TFVL) TOTTFVL,
  173. ROUND(AVG(TFVL), 0) AVGTFVL,
  174. SUM(DECODE(STATDAY, '01', TFVL)) AS L01,
  175. SUM(DECODE(STATDAY, '02', TFVL)) AS L02,
  176. SUM(DECODE(STATDAY, '03', TFVL)) AS L03,
  177. SUM(DECODE(STATDAY, '04', TFVL)) AS L04,
  178. SUM(DECODE(STATDAY, '05', TFVL)) AS L05,
  179. SUM(DECODE(STATDAY, '06', TFVL)) AS L06,
  180. SUM(DECODE(STATDAY, '07', TFVL)) AS L07,
  181. SUM(DECODE(STATDAY, '08', TFVL)) AS L08,
  182. SUM(DECODE(STATDAY, '09', TFVL)) AS L09,
  183. SUM(DECODE(STATDAY, '10', TFVL)) AS L10,
  184. SUM(DECODE(STATDAY, '11', TFVL)) AS L11,
  185. SUM(DECODE(STATDAY, '12', TFVL)) AS L12,
  186. SUM(DECODE(STATDAY, '13', TFVL)) AS L13,
  187. SUM(DECODE(STATDAY, '14', TFVL)) AS L14,
  188. SUM(DECODE(STATDAY, '15', TFVL)) AS L15,
  189. SUM(DECODE(STATDAY, '16', TFVL)) AS L16,
  190. SUM(DECODE(STATDAY, '17', TFVL)) AS L17,
  191. SUM(DECODE(STATDAY, '18', TFVL)) AS L18,
  192. SUM(DECODE(STATDAY, '19', TFVL)) AS L19,
  193. SUM(DECODE(STATDAY, '20', TFVL)) AS L20,
  194. SUM(DECODE(STATDAY, '21', TFVL)) AS L21,
  195. SUM(DECODE(STATDAY, '22', TFVL)) AS L22,
  196. SUM(DECODE(STATDAY, '23', TFVL)) AS L23,
  197. SUM(DECODE(STATDAY, '24', TFVL)) AS L24,
  198. SUM(DECODE(STATDAY, '25', TFVL)) AS L25,
  199. SUM(DECODE(STATDAY, '26', TFVL)) AS L26,
  200. SUM(DECODE(STATDAY, '27', TFVL)) AS L27,
  201. SUM(DECODE(STATDAY, '28', TFVL)) AS L28,
  202. SUM(DECODE(STATDAY, '29', TFVL)) AS L29,
  203. SUM(DECODE(STATDAY, '30', TFVL)) AS L30,
  204. SUM(DECODE(STATDAY, '31', TFVL)) AS L31
  205. FROM (
  206. SELECT TO_CHAR(Y.DTCT_NMBR) AS DTCT_NMBR, Y.VDS_DTCT_NM,
  207. TO_CHAR(Y.ISTL_LANE) AS ISTL_LANE, X.TRFTYPE, X.STATDAY, X.TFVL
  208. FROM (SELECT /*+ INDEX(A PK_VDS_DTCT_HH_STAT) */
  209. 'DTCT' AS TRFTYPE,
  210. A.DTCT_NMBR AS VDS_DTCT_NMBR, SUBSTR(A.STAT_DT, 7, 2) AS STATDAY,
  211. A.TFVL AS TFVL
  212. FROM TB_VDS_DTCT_HH_STAT A
  213. WHERE 1=1
  214. AND A.STAT_DT BETWEEN #{FROM_DT} AND ${TO_DT}
  215. AND SUBSTR(A.STAT_DT, 9, 4) BETWEEN #{FROM_HM} AND ${TO_HM}
  216. ) X,
  217. TB_VDS_DTCT_MSTR Y
  218. WHERE 1=1
  219. AND Y.DEL_YN = 'N'
  220. AND Y.DTCT_NMBR = X.VDS_DTCT_NMBR
  221. )
  222. GROUP BY ROLLUP (DTCT_NMBR, ISTL_LANE, TRFTYPE)
  223. HAVING GROUPING(TRFTYPE) = 0
  224. ) LX,
  225. (
  226. SELECT A.CTLR_MNGM_NMBR AS VDS_CTLR_NMBR, A.VDS_CTLR_ID, A.LCTN AS LCTN, B.DTCT_NMBR,
  227. B.ISTL_LANE, B.VDS_DTCT_NM, B.DTCT_TYPE_CD AS DTCT_TYPE,
  228. (SELECT CMMN_CD_KOR_NM
  229. FROM TB_CMMN_CD
  230. WHERE CMMN_CLSF_CD = 'ACD'
  231. AND CMMN_CD = B.DTCT_TYPE_CD) AS DTCT_TYPE_NM
  232. FROM TB_VDS_CTLR A,
  233. TB_VDS_DTCT_MSTR B
  234. WHERE 1=1
  235. AND A.DEL_YN = 'N'
  236. AND B.DEL_YN = 'N'
  237. AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR
  238. ) LY
  239. WHERE LY.DTCT_NMBR = LX.DTCT_NMBR
  240. ORDER BY LY.VDS_CTLR_NMBR, LY.DTCT_NMBR, LY.ISTL_LANE
  241. ]]>
  242. </select>
  243. <select id="findAllMonthStatByDateRange" parameterType="java.util.HashMap" resultType="com.its.api.op.model.dto.vds.VdsDtctTfvlMonthDto">
  244. <![CDATA[
  245. SELECT LY.VDS_CTLR_NMBR, LY.VDS_CTLR_ID, LY.LCTN, LY.DTCT_NMBR, LY.ISTL_LANE, LY.VDS_DTCT_NM,
  246. LY.DTCT_TYPE, LY.DTCT_TYPE_NM, LX.TRFTYPE, LY.VDS_CTLR_NMBR || '.' || LY.LCTN AS NM,
  247. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(TOTTFVL, 0, 0, TOTTFVL)) AS TOTTFVL,
  248. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(AVGTFVL, 0, 0, AVGTFVL)) AS AVGTFVLX,
  249. DECODE(NVL(L01,0)+NVL(L02,0)+NVL(L03,0)+NVL(L04,0)+NVL(L05,0)+NVL(L06,0)+NVL(L07,0)+
  250. NVL(L08,0)+NVL(L09,0)+NVL(L10,0)+NVL(L11,0)+NVL(L12,0), 0, 0,
  251. ROUND(
  252. (NVL(L01,0)+NVL(L02,0)+NVL(L03,0)+NVL(L04,0)+NVL(L05,0)+NVL(L06,0)+NVL(L07,0)+
  253. NVL(L08,0)+NVL(L09,0)+NVL(L10,0)+NVL(L11,0)+NVL(L12,0)) /
  254. (DECODE(L01,NULL,0,1)+DECODE(L02,NULL,0,1)+DECODE(L03,NULL,0,1)+
  255. DECODE(L04,NULL,0,1)+DECODE(L05,NULL,0,1)+DECODE(L06,NULL,0,1)+
  256. DECODE(L07,NULL,0,1)+DECODE(L08,NULL,0,1)+DECODE(L09,NULL,0,1)+
  257. DECODE(L10,NULL,0,1)+DECODE(L11,NULL,0,1)+DECODE(L12,NULL,0,1)), 0)) AS AVGTFVL,
  258. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L01, NULL, 0, L01)) AS C01,
  259. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L02, NULL, 0, L02)) AS C02,
  260. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L03, NULL, 0, L03)) AS C03,
  261. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L04, NULL, 0, L04)) AS C04,
  262. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L05, NULL, 0, L05)) AS C05,
  263. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L06, NULL, 0, L06)) AS C06,
  264. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L07, NULL, 0, L07)) AS C07,
  265. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L08, NULL, 0, L08)) AS C08,
  266. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L09, NULL, 0, L09)) AS C09,
  267. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L10, NULL, 0, L10)) AS C10,
  268. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L11, NULL, 0, L11)) AS C11,
  269. DECODE(LX.DTCT_NMBR, NULL, 0, DECODE(L12, NULL, 0, L12)) AS C12
  270. FROM (
  271. SELECT GROUPING(DTCT_NMBR) AS GROUPING_DTCT_NMBR,
  272. GROUPING(ISTL_LANE) AS GROUPING_ISTL_LANE,
  273. GROUPING(TRFTYPE) AS GROUPING_TRFTYPE,
  274. CASE WHEN GROUPING(DTCT_NMBR ) = 1 THEN '검지기' ELSE DTCT_NMBR END AS GROUP_DTCT_NMBR,
  275. CASE WHEN GROUPING(ISTL_LANE) = 1 THEN '차로' ELSE ISTL_LANE END AS GROUP_ISTL_LANE,
  276. CASE WHEN GROUPING(TRFTYPE) = 1 THEN '소계' ELSE TRFTYPE END AS GROUP_TRFTYPE,
  277. DTCT_NMBR, ISTL_LANE, TRFTYPE,
  278. SUM(TFVL) TOTTFVL,
  279. ROUND(AVG(TFVL), 0) AVGTFVL,
  280. SUM(DECODE(STATDAY, '01', TFVL)) AS L01,
  281. SUM(DECODE(STATDAY, '02', TFVL)) AS L02,
  282. SUM(DECODE(STATDAY, '03', TFVL)) AS L03,
  283. SUM(DECODE(STATDAY, '04', TFVL)) AS L04,
  284. SUM(DECODE(STATDAY, '05', TFVL)) AS L05,
  285. SUM(DECODE(STATDAY, '06', TFVL)) AS L06,
  286. SUM(DECODE(STATDAY, '07', TFVL)) AS L07,
  287. SUM(DECODE(STATDAY, '08', TFVL)) AS L08,
  288. SUM(DECODE(STATDAY, '09', TFVL)) AS L09,
  289. SUM(DECODE(STATDAY, '10', TFVL)) AS L10,
  290. SUM(DECODE(STATDAY, '11', TFVL)) AS L11,
  291. SUM(DECODE(STATDAY, '12', TFVL)) AS L12
  292. FROM (
  293. SELECT TO_CHAR(Y.DTCT_NMBR) AS DTCT_NMBR, Y.VDS_DTCT_NM,
  294. TO_CHAR(Y.ISTL_LANE) AS ISTL_LANE, X.TRFTYPE, X.STATDAY, X.TFVL
  295. FROM (SELECT /*+ INDEX(A PK_VDS_DTCT_MN_STAT) */
  296. 'DTCT' AS TRFTYPE,
  297. A.DTCT_NMBR AS VDS_DTCT_NMBR, SUBSTR(A.STAT_DT, 5, 2) AS STATDAY,
  298. A.TFVL AS TFVL
  299. FROM TB_VDS_DTCT_MN_STAT A
  300. WHERE 1=1
  301. AND A.STAT_DT BETWEEN #{FROM_DT} AND #{TO_DT}
  302. ) X,
  303. TB_VDS_DTCT_MSTR Y
  304. WHERE 1=1
  305. AND Y.DEL_YN = 'N'
  306. AND Y.DTCT_NMBR = X.VDS_DTCT_NMBR
  307. )
  308. GROUP BY ROLLUP (DTCT_NMBR, ISTL_LANE, TRFTYPE)
  309. HAVING GROUPING(TRFTYPE) = 0
  310. ) LX,
  311. (
  312. SELECT A.CTLR_MNGM_NMBR AS VDS_CTLR_NMBR, A.VDS_CTLR_ID, A.LCTN AS LCTN, B.DTCT_NMBR,
  313. B.ISTL_LANE, B.VDS_DTCT_NM, B.DTCT_TYPE_CD AS DTCT_TYPE,
  314. (SELECT CMMN_CD_KOR_NM
  315. FROM TB_CMMN_CD
  316. WHERE CMMN_CLSF_CD = 'ACD'
  317. AND CMMN_CD = B.DTCT_TYPE_CD) AS DTCT_TYPE_NM
  318. FROM TB_VDS_CTLR A,
  319. TB_VDS_DTCT_MSTR B
  320. WHERE 1=1
  321. AND A.DEL_YN = 'N'
  322. AND B.DEL_YN = 'N'
  323. AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR
  324. ) LY
  325. WHERE LY.DTCT_NMBR = LX.DTCT_NMBR
  326. ORDER BY LY.VDS_CTLR_NMBR, LY.DTCT_NMBR, LY.ISTL_LANE
  327. ]]>
  328. </select>
  329. </mapper>