SQL 未能篩選出已離職的同事

本文由 StephenChan 在 2019-04-03 發表於 "WebSAMS 討論區" 討論區

標籤:
  1. 55000483

    StephenChan
    Expand Collapse

    文章:
    10
    讚:
    0
    select distinct b.NAME_CHI, b.NAME_ENG, c.STAFFCODE, c.APPENDDATE, a.SCHYEAR, a.CLASSCODE, a.STAFFSEQ
    from TB_STF_APPOINTMENT c
    left outer join VW_ASR_STAFF b
    on c.suid=b.suid and c.STAFFCODE=b.STAFFCODE
    left outer join TB_SCH_CLSTCHR a
    on c.STAFFCODE=a.STAFFCODE and a.suid=c.suid and a.SCHYEAR=?
    where (c.APPENDDATE is null)
    order by 5, 6, 7, c.STAFFCODE

    WebSAMS 的同工好!小弟用以上的 SQL ,可以抽到我想要的資料,不過有些已離職的同事,同樣也出現了,而我入到 Staff 去看,發現已離職的同事,在系統 (
    [S-STF04-03] 教職員資料 > 教職員概況 > 離職 ) 內是有填上離職的資訊,請問我是否用錯 table?以上 SQL 應如何修改?
     
    #1 StephenChan, 2019-04-03
  2. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    302
    讚:
    0
    可以JOIN 一個叫 TB_STF_EMPLOYPERIOD,這個記錄老師在職時段及離職原因。
    只要FILTER出聘用結束日期為NULL就代表在職了。

    select
    distinct b.NAME_CHI, b.NAME_ENG, c.STAFFCODE, c.APPENDDATE, a.SCHYEAR, a.CLASSCODE, a.STAFFSEQ
    from wsadmin.TB_STF_APPOINTMENT c
    left outer join wsadmin.VW_ASR_STAFF b
    on c.suid=b.suid and c.STAFFCODE=b.STAFFCODE
    left outer join wsadmin.TB_SCH_CLSTCHR a
    on c.STAFFCODE=a.STAFFCODE and a.suid=c.suid and a.SCHYEAR=?
    left outer join wsadmin.TB_STF_EMPLOYPERIOD d
    on c.suid=d.suid and c.STAFFCODE=d.STAFFCODE and d.EMPENDDATE is null

    where (c.APPENDDATE is null)
    order by 5, 6, 7, c.STAFFCODE
     
    #2 edb-catherinewschan, 2019-04-03
  3. 55000483

    StephenChan
    Expand Collapse

    文章:
    10
    讚:
    0
    謝謝你,最後我參考了你的SQL,改成以下的。

    select distinct b.NAME_CHI, b.NAME_ENG, a.STAFFCODE, a.EMPENDDATE, c.SCHYEAR, c.CLASSCODE, c.STAFFSEQ
    from wsadmin.TB_STF_EMPLOYPERIOD a
    left outer join wsadmin.VW_ASR_STAFF b
    on a.suid=b.suid and a.STAFFCODE=b.STAFFCODE
    left outer join wsadmin.TB_SCH_CLSTCHR c
    on a.STAFFCODE=c.STAFFCODE and c.suid=a.suid and c.SCHYEAR=?
    where (a.EMPENDDATE is null)
    order by 5, 6, 7, a.STAFFCODE
     
    #3 StephenChan, 2019-04-08