티베로 정렬조건문을 mysql에서 사용 가능 여부 0 2 925

by ksbgenius [2017.01.16 15:27:51]


현재 티베로에서 사용하는 쿼리입니다.

SELECT *

FROM
    dept_info
WHERE
    dept_type!='1' START WITH UPR_DEPT_CODE = '6290000' CONNECT BY PRIOR DEP_CODE =
    UPR_DEPT_CODE ORDER SIBLINGS BY to_number(DEPT_RANK); 

이 쿼리는 부서를 정렬하는 쿼리 입니다.

DEP_CODE DEP_CODE_NM UPR_DEPT_CODE SPRM_DEPT_CODE DEPT_RANK USE_YN DT_UPDATE DEPT_TYPE
6290001 aa 6290000 6290000 001 1 2017-01-12 03:44:46.0 2
6290176 bb 6290000 6290000 002 1 2017-01-12 03:44:46.0 2
6290462 cc 6290000 6290000 003 1 2017-01-12 03:44:46.0 2
6290527 dd 6290000 6290000 010 1 2017-01-12 03:44:46.0 2
6290468 ee 6290000 6290000 029 1 2017-01-12 03:44:46.0 2
6290630 ff 6290000 6290000 035 1 2017-01-12 03:44:46.0 2
6290631 gg 6290000 6290000 039 1 2017-01-12 03:44:46.0 2
6290632 hh 6290000 6290000 049 1 2017-01-12 03:44:46.0 2
6290745 ii 6290000 6290000 059 1 2017-01-12 03:44:46.0 2
6290470 jj 6290000 6290000 069 1 2017-01-12 03:44:46.0 2
6290633 kk 6290470 6290000 001 1 2017-01-12 03:44:46.0 3
6290695 ll 6290470 6290000 003 1 2017-01-12 03:44:46.0 3
6290482 mm 6290470 6290000 005 1 2017-01-12 03:44:46.0 3
6290696 nn 6290470 6290000 007 1 2017-01-12 03:44:46.0 3
6290484 oo 6290470 6290000 009 1 2017-01-12 03:44:46.0 3
6290672 pp 6290470 6290000 010 1 2017-01-12 03:44:46.0 3
6290697 qq 6290470 6290000 013 1 2017-01-12 03:44:46.0 3
6290673 rr 6290000 6290000 079 1 2017-01-12 03:44:46.0 2
6290674 ss 6290673 6290000 001 1 2017-01-12 03:44:46.0 3
6290675 tt 6290673 6290000 003 1 2017-01-12 03:44:46.0 3
6290676 uu 6290673 6290000 005 1 2017-01-12 03:44:46.0 3
6290677 vv 6290673 6290000 007 1 2017-01-12 03:44:46.0 3
6290692 ww 6290000 6290000 094 1 2017-01-12 03:44:46.0 2
6290698 xx 6290692 6290000 001 1 2017-01-12 03:44:46.0 3
6290699 yy 6290692 6290000 003 1 2017-01-12 03:44:46.0 3
6290700 zz 6290692 6290000 005 1 2017-01-12 03:44:46.0 3
6290701 aaa 6290692 6290000 007 1 2017-01-12 03:44:46.0 3
6290702 bbb 6290692 6290000 009 1 2017-01-12 03:44:46.0 3
             


샘플로 몇개 데이터만 올려봤습니다.

 

티베로 쿼리를 mysql에서 사용해서 정렬을 하고자 합니다...

 

도움을 주시면 감사하겠습니다.

by 마농 [2017.01.18 13:24:40]
-- 1 Level --
SELECT a.*
     , a.dept_rank AS dept_rank_full
  FROM dept_info a
 WHERE a.use_yn     = '1'
   AND a.dept_type != '1'
   AND a.upr_dept_code = '6290000'
 UNION ALL 
-- 2 Level --
SELECT b.*
     , CONCAT( a.dept_rank
             , b.dept_rank
             ) dept_rank_full
  FROM dept_info a
  INNER JOIN dept_info b ON b.upr_dept_code = a.dep_code
 WHERE a.use_yn     = '1'
   AND b.use_yn     = '1'
   AND a.dept_type != '1'
   AND b.dept_type != '1'
   AND a.upr_dept_code = '6290000'
-- UNION ALL 
---- 3 Level --
--SELECT c.*
--     , CONCAT( a.dept_rank
--             , b.dept_rank
--             , c.dept_rank
--             ) dept_rank_full
--  FROM dept_info a
--  INNER JOIN dept_info b ON b.upr_dept_code = a.dep_code
--  INNER JOIN dept_info c ON c.upr_dept_code = b.dep_code
-- WHERE a.use_yn     = '1'
--   AND b.use_yn     = '1'
--   AND c.use_yn     = '1'
--   AND a.dept_type != '1'
--   AND b.dept_type != '1'
--   AND c.dept_type != '1'
--   AND a.upr_dept_code = '6290000'
 ORDER BY dept_rank_full
;

 


by 마농 [2017.01.19 17:05:30]
SELECT m.*
     , @p := dep_code
     , (SELECT GROUP_CONCAT(
               (SELECT CASE WHEN (@p := upr_dept_code) = upr_dept_code THEN dept_rank END
                  FROM test4
                 WHERE dep_code = @p
                   AND sprm_dept_code = '6290000'
                )
                ORDER BY lv DESC)
           FROM (SELECT 1 lv
                 UNION ALL SELECT 2
                 UNION ALL SELECT 3
                 UNION ALL SELECT 4
                 UNION ALL SELECT 5
                 UNION ALL SELECT 6
                 UNION ALL SELECT 7
                 UNION ALL SELECT 8
                 UNION ALL SELECT 9
                 ) a
         WHERE @p != 0
        ) dept_rank_full
  FROM test4 m
     , (SELECT @p := 0) a
 WHERE sprm_dept_code = '6290000'
;

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입