SQL 能否更準確地抽取任教老師

本文由 rockfulam 在 2021-02-19 , 9:09 上午 發表於 "WebSAMS 討論區" 討論區

  1. 55090821

    rockfulam
    Expand Collapse

    文章:
    98
    讚:
    0
    於“https://cdr.websams.edb.gov.hk/模組資料/學生成績/常用SQL/”
    20. 抽取 各科成績(包括分卷) 及 相關任教老師

    但抽取的老師特別是跨班別老師,會所有老師都一並顯示,能否只顯示各分組的老師?
    因為在跨班別裡面設定,需要把老師都加入去,不同分卷都設定了不同老師
    但最後抽取卻全部老師都會出現
     
  2. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    170
    讚:
    0
    其實我不太了解你的問題,但我嘗試把老師分行列出,看看能否解決你的問題。
    你試試以下的SQL,如果仍然有問題,請與校主聯絡作進一步跟進。

    select
    b.timeseq '考績',
    a.classcode '班別',
    a.classno '班號',
    a.chname '姓名',
    a.enname 'Name',
    c.en_des 'Subject',
    c.ch_des '科目',
    b.sysscore '成績',
    d2.ch_des '分卷科目',
    d1.sysscore '分卷成績',
    (case when e.CROSSSUBJGRP is null then h.name_chi else j.name_chi end) '任教老師',
    (case when e.CROSSSUBJGRP is null then h.name_eng else j.name_eng end) 'Teacher'
    from wsadmin.vw_stu_lateststudent a
    left outer join wsadmin.tb_asr_subjassessdata b on a.suid=b.suid and a.schlvl=b.schlevel and a.schsess=b.schsession and a.classlvl=b.classlevel and a.schyear=b.schyear and a.stuid=b.stuid and b.timeseq=?
    left outer join wsadmin.tb_hse_common c on a.suid=c.suid and b.subjcode=c.code_id and c.tb_id='SBJ'
    left outer join wsadmin.TB_ASR_SUBJCOMASSESSDATA d1 on a.SUID = d1.SUID and a.SCHLVL = d1.SCHLEVEL and a.SCHSESS = d1.SCHSESSION and a.SCHYEAR = d1.SCHYEAR and a.STUID = d1.STUID and b.SUBJCODE = d1.SUBJCODE and b.TIMESEQ = d1.TIMESEQ
    left outer join wsadmin.TB_HSE_SBJCMP d2 on d1.SUID = d2.SUID and d1.SUBJCODE = d2.SBJ_CODE and d1.SUBJCOMPCODE = d2.CODE_ID
    left outer join wsadmin.TB_STU_STUSUBJ e on a.suid=e.suid and a.stuid=e.stuid and b.SUBJCODE = e.SUBJCODE and a.STUSCHRECID=e.STUSCHRECID
    left outer join wsadmin.TB_SCH_CLSSUBJTCHR g on a.SUID = g.SUID and a.SCHYEAR = g.SCHYEAR and a.SCHLVL = g.SCHLEVEL and a.schsess = g.SCHSESSION and a.classlvl = g.CLASSLEVEL and a.CLASSCODE = g.CLASSCODE and b.SUBJCODE = g.SUBJCODE and b.MOI = g.MOI
    left outer join wsadmin.VW_ASR_STAFF h on a.SUID = h.SUID and g.STAFFCODE = h.STAFFCODE
    left outer join wsadmin.TB_SCH_DSGSUBJTCHR i on a.SUID = i.SUID and a.SCHYEAR = i.SCHYEAR and a.SCHLVL = i.SCHLEVEL and a.schsess = i.SCHSESSION and e.CROSSSUBJCODE=i.DIVSUBJCODE and e.CROSSSUBJGRP=i.SUBJGRPCODE
    left outer join wsadmin.VW_ASR_STAFF j on a.SUID = j.SUID and i.STAFFCODE = j.STAFFCODE
    where a.schyear=? and a.classlvl=?
    order by a.classlvl, a.classcode, a.classno, c.ch_des
     
    #2 edb-catherinewschan, 2021-02-24 , 12:02 下午
  3. 55090821

    rockfulam
    Expand Collapse

    文章:
    98
    讚:
    0
    這個可能與策劃新學年時的數據設定開始
    不知道以往的操作是否有錯誤,因為策劃新學年複製上年度數據
    跨班別需要加入所有老師,編輯時間表才會出現跨班別的所有老師

    最後跨班別分組就會有所有老師出現

    然後在每個分組,選取任教老師,再選中其任教的分卷,這樣老師才能入分

    根據官方sql , 每次抽取的數據,非跨班別是正常的,但跨班別就會把跨班別的所有老師都加上去
    而不是選取有權入分的老師
    能否提供有權入分的database field name, 有權入分 則老師就是任教此學生
    效果類似{學生成績 > 數據輸入 > 匯出資料,選擇老師}
     

    附件文件:

    • eng.png
      eng.png
      文件大小:
      122.8 KB
      瀏覽:
      2
  4. 55090821

    rockfulam
    Expand Collapse

    文章:
    98
    讚:
    0
    是否要加入TB_SCH_DSGSUBJCOMPTCHR,來抽取入分老師?