【intra-mart】【SQL】ユーザ別所属組織の役職情報の取得 | 株式会社アースリンク

Engineer Blog開発者ブログ

2021.5.7

【intra-mart】【SQL】ユーザ別所属組織の役職情報の取得

今回ご紹介するのは、intra-mart既存のテーブルより”ユーザ別役職”を取得する方法になります。

 

主要となるのは以下のテーブルになります。

 ・IMM_USER  (ユーザマスタ) 
  ⇒ユーザの基本情報を保持するテーブル

 ・IMM_DEPARTMENT  (組織マスタ) 
  ⇒組織の基本情報を保持するテーブル

 ・IMM_DEPARTMENT_ATH  (組織所属マスタ)
  ⇒ユーザと組織の情報をつなげるテーブル

 ・IMM_DEPARTMENT_POST_ATH (組織所属役職)
  ⇒ユーザと所属組織の役職情報をつなげるテーブル

 ・IMM_COMPANY_POST (役職マスタ)
  ⇒役職の基本情報を保持するテーブル

 

 実行SQL
 ・以下の例では、”2021/04/01″に有効なユーザ別役職情報を取得しています。

SELECT
 A.USER_CD            -- ユーザコード
 , A.USER_NAME        -- ユーザ名
 , C.DEPARTMENT_CD    -- 組織コード
 , C.DEPARTMENT_NAME  -- 組織名
 , E.POST_CD          -- 役職コード
 , E.POST_NAME        -- 役職名
FROM
 IMM_USER A
 INNER JOIN IMM_DEPARTMENT_ATH B
 ON  A.USER_CD = B.USER_CD
 AND A.LOCALE_ID = 'ja'
 AND A.DELETE_FLAG = '0'
 AND B.DELETE_FLAG = '0'
 AND B.DEPARTMENT_MAIN = '1'  -- 主所属フラグ
 AND '20210401' BETWEEN TO_CHAR(B.START_DATE, 'YYYYMMDD') AND TO_CHAR(B.END_DATE, 'YYYYMMDD') 
 INNER JOIN IMM_DEPARTMENT C
 ON  B.COMPANY_CD = C.COMPANY_CD
 AND B.DEPARTMENT_SET_CD = C.DEPARTMENT_SET_CD
 AND B.DEPARTMENT_CD = C.DEPARTMENT_CD
 AND C.LOCALE_ID = 'ja'
 AND C.DELETE_FLAG = '0'
 AND '20210401' BETWEEN TO_CHAR(C.START_DATE, 'YYYYMMDD') AND TO_CHAR(C.END_DATE, 'YYYYMMDD') 
 INNER JOIN IMM_DEPARTMENT_POST_ATH D
 ON  B.COMPANY_CD = D.COMPANY_CD
 AND B.DEPARTMENT_SET_CD = D.DEPARTMENT_SET_CD
 AND B.DEPARTMENT_CD = D.DEPARTMENT_CD
 AND B.USER_CD = D.USER_CD
 AND D.DELETE_FLAG = '0'
 AND '20210401' BETWEEN TO_CHAR(D.START_DATE, 'YYYYMMDD') AND TO_CHAR(D.END_DATE, 'YYYYMMDD') 
 INNER JOIN IMM_COMPANY_POST E
 ON  D.COMPANY_CD = E.COMPANY_CD
 AND D.DEPARTMENT_SET_CD = E.DEPARTMENT_SET_CD
 AND D.POST_CD = E.POST_CD
 AND E.LOCALE_ID = 'ja'
 AND E.DELETE_FLAG = '0'
 AND '20210401' BETWEEN TO_CHAR(E.START_DATE, 'YYYYMMDD') AND TO_CHAR(E.END_DATE, 'YYYYMMDD') 
WHERE
 '20210401' BETWEEN TO_CHAR(A.START_DATE, 'YYYYMMDD') AND TO_CHAR(A.END_DATE, 'YYYYMMDD') 
  AND A.LOCALE_ID = 'ja'
  AND A.DELETE_FLAG = '0'

他で紹介している、SQLと合わせて使ってみてください。

それではまた次回。。。(^^)/~~

Contact
お問い合わせ

電話番号0120 - 889 - 236

受付時間:平日 9:00-18:00