SQL 加入本學年插班生紀錄及計算標準分

本文由 chautc 在 2022-02-24 發表於 "WebSAMS 討論區" 討論區

  1. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
    select
    a.CLASSCODE,
    a.CLASSNO,
    a.CHNAME,
    c.SYSPERCSCORE 'Last Yr T2',
    c.overcondgradeconversioncompcode 'Last Yr Conduct',
    d.SYSPERCSCORE 'This Yr T1',
    d.overcondgradeconversioncompcode 'This Yr Conduct',
    d.SYSPERCSCORE - c.SYSPERCSCORE 'Diff'from VW_STU_LATESTSTUDENT a
    join TB_ASR_STUDASSESSDATA c
    on a.SUID = c.SUID and a.STUID = c.STUID and c.SCHYEAR = a.SCHYEAR-1 and c.TIMESEQ = 1200 left outer join TB_ASR_STUDASSESSDATA d
    on a.SUID = d.SUID and a.STUID = d.STUID and a.SCHYEAR = d.SCHYEAR and d.TIMESEQ = 1100 where a.classlvl=? and a.schyear=?
    order by Diff desc

    可以為以上 SQL 加上本學年插班生紀錄,以及能計算出每名上學年及本學年學生總平均分的
    標準分(Z-Score)?
    order by 標準分進步(本學年學生標準分 - 上學年學生標準分)
     
  2. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
    如能增加下列各學年的紀錄,都能夠在Excel 自行計算 Z-Score:

    本學年:插班生紀錄
    上學年:本學年離校生的紀錄,本學年留班生紀錄,

    謝謝。
     
  3. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    231
    讚:
    0
    你好,

    想先了解一下"插班生"的資料, 你在WEBSAMS系統那個位置輸入??
    我只找到在 學生資料 > 學生概況 > 在學資料 , 在"學生狀況" 可以輸入"離校"

    請提供詳細資料 , 或聯絡校主作進一步了解... 謝謝
     
    #3 edb-catherinewschan, 2022-03-01
  4. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
    select
    a.CLASSCODE,
    a.CLASSNO,
    a.CHNAME,
    c.SYSPERCSCORE 'Last Yr T2',
    c.overcondgradeconversioncompcode 'Last Yr Conduct',
    d.SYSPERCSCORE 'This Yr T1',
    d.overcondgradeconversioncompcode 'This Yr Conduct',
    d.SYSPERCSCORE - c.SYSPERCSCORE 'Diff'from VW_STU_LATESTSTUDENT a
    join TB_ASR_STUDASSESSDATA c
    on a.SUID = c.SUID and a.STUID = c.STUID and c.SCHYEAR = a.SCHYEAR-1 and c.TIMESEQ = 1200 left outer join TB_ASR_STUDASSESSDATA d
    on a.SUID = d.SUID and a.STUID = d.STUID and a.SCHYEAR = d.SCHYEAR and d.TIMESEQ = 1100 where a.classlvl=? and a.schyear=?
    order by Diff desc

    是指在以上SQL 的最佳進步奬,希望能夠提取到
    This Yr T1 (本學年) :插班生總平均分資料
    'Last Yr T2 (上學年) 在本學年離校生的上學年總平均分資料及在本學年留班生的上學年總平均分資料。

    自行用Excel 更準碓計算出 Z-Score.

    唔知解釋得清楚嗎? 謝謝你。
     
  5. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    231
    讚:
    0
    你好,

    請你解釋如何定義為"插班生", 在WEBSAMS系統那個地方設定??

    插班生.jpg
     
    #5 edb-catherinewschan, 2022-03-02
  6. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
    明白,插班生是不能透過SQL抽取出來的,但能否
    從以上提取最佳進步奬的SQL,包括下列情況的學生總平均分資料:

    'Last Yr T2' (上學年) 在本學年離校生的上學年總平均分資料及在本學年留班生的上學年總平均分資料。

    謝謝
     
  7. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    231
    讚:
    0
    你好,

    按你的要求 , 最簡單的方法是把學生的"在學狀況"顯示出來, 再配合你現時的SQL,
    就可以列出一個LIST , 你可以用EXCEL 做篩選, 就可以列出 "本學年離校生" 和 "本學年留班生" ,
    也可以知道上學年的總平均分

    但如果你只要"留班生"和"離校生" , 可以在WHERE句子內加上 and mon.CODE_ID in ('1','5')

    select
    a.CLASSLVL,
    a.CLASSCODE,
    a.CLASSNO,
    a.enname,
    a.CHNAME,
    (case when mon.CH_DES is null then '在學' else mon.CH_DES end) '狀況',
    c.SYSPERCSCORE 'Last Yr T2',
    c.overcondgradeconversioncompcode 'Last Yr Conduct',
    d.SYSPERCSCORE 'This Yr T1',
    d.overcondgradeconversioncompcode 'This Yr Conduct',
    d.SYSPERCSCORE - c.SYSPERCSCORE 'Diff'
    from wsadmin.VW_STU_LATESTSTUDENT a
    LEFT OUTER JOIN wsadmin.TB_STU_STUSCHREC sr ON a.SUID=sr.SUID AND a.STUID=sr.STUID AND a.SCHYEAR=sr.SCHYEAR AND a.SCHLVL=sr.SCHLVL AND a.SCHSESS=sr.SCHSESS AND a.CLASSLVL=sr.CLASSLVL AND a.CLASSCODE=sr.CLASSCODE
    LEFT OUTER JOIN wsadmin.TB_HSE_COMMON mon ON sr.SUID=mon.SUID AND sr.STATUS=mon.CODE_ID and mon.TB_ID='STUDST'
    left outer join wsadmin.TB_ASR_STUDASSESSDATA c
    on a.SUID = c.SUID and a.STUID = c.STUID and c.SCHYEAR = a.SCHYEAR-1 and c.TIMESEQ = 1200
    left outer join wsadmin.TB_ASR_STUDASSESSDATA d
    on a.SUID = d.SUID and a.STUID = d.STUID and a.SCHYEAR = d.SCHYEAR and d.TIMESEQ = 1100
    where a.schyear=? and mon.CODE_ID in ('1','5')
    and a.classlvl=?
    order by Diff desc
     
    #7 edb-catherinewschan, 2022-03-08
  8. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
     
  9. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    231
    讚:
    0
    你好,

    請先執行這個沒有分類的SQL,看看有沒有資料

    select
    a.CLASSLVL,
    a.CLASSCODE,
    a.CLASSNO,
    a.enname,
    a.CHNAME,
    (case when mon.CH_DES is null then '在學' else mon.CH_DES end) '狀況',
    c.SYSPERCSCORE 'Last Yr T2',
    c.overcondgradeconversioncompcode 'Last Yr Conduct',
    d.SYSPERCSCORE 'This Yr T1',
    d.overcondgradeconversioncompcode 'This Yr Conduct',
    d.SYSPERCSCORE - c.SYSPERCSCORE 'Diff'
    from wsadmin.VW_STU_LATESTSTUDENT a
    LEFT OUTER JOIN wsadmin.TB_STU_STUSCHREC sr ON a.SUID=sr.SUID AND a.STUID=sr.STUID AND a.SCHYEAR=sr.SCHYEAR AND a.SCHLVL=sr.SCHLVL AND a.SCHSESS=sr.SCHSESS AND a.CLASSLVL=sr.CLASSLVL AND a.CLASSCODE=sr.CLASSCODE
    LEFT OUTER JOIN wsadmin.TB_HSE_COMMON mon ON sr.SUID=mon.SUID AND sr.STATUS=mon.CODE_ID and mon.TB_ID='STUDST'
    left outer join wsadmin.TB_ASR_STUDASSESSDATA c
    on a.SUID = c.SUID and a.STUID = c.STUID and c.SCHYEAR = a.SCHYEAR-1 and c.TIMESEQ = 1200
    left outer join wsadmin.TB_ASR_STUDASSESSDATA d
    on a.SUID = d.SUID and a.STUID = d.STUID and a.SCHYEAR = d.SCHYEAR and d.TIMESEQ = 1100
    where a.schyear=?
    and a.classlvl=?
    order by Diff desc
     
    #9 edb-catherinewschan, 2022-03-11
  10. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
     
  11. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    231
    讚:
    0
    不如先在WEBSAMS內的 代碼管理 > 編修代碼表 ,選擇 "學生狀況"
    看看設定有沒有不同,另外代碼是否1和5 ??

    學生狀況.JPG

    另外,執行一條SQL是只抽取 代碼是1和5 , 只出全年離校和留級生。
    建議你可以輸入以往的學年去查下是否正確。

    select
    a.CLASSLVL,
    a.CLASSCODE,
    a.CLASSNO,
    a.enname,
    a.CHNAME,
    (case when mon.CH_DES is null then '在學' else mon.CH_DES end) '狀況',
    c.SYSPERCSCORE 'Last Yr T2',
    c.overcondgradeconversioncompcode 'Last Yr Conduct',
    d.SYSPERCSCORE 'This Yr T1',
    d.overcondgradeconversioncompcode 'This Yr Conduct',
    d.SYSPERCSCORE - c.SYSPERCSCORE 'Diff'
    from wsadmin.VW_STU_LATESTSTUDENT a
    LEFT OUTER JOIN wsadmin.TB_STU_STUSCHREC sr ON a.SUID=sr.SUID AND a.STUID=sr.STUID AND a.SCHYEAR=sr.SCHYEAR AND a.SCHLVL=sr.SCHLVL AND a.SCHSESS=sr.SCHSESS AND a.CLASSLVL=sr.CLASSLVL AND a.CLASSCODE=sr.CLASSCODE
    LEFT OUTER JOIN wsadmin.TB_HSE_COMMON mon ON sr.SUID=mon.SUID AND sr.STATUS=mon.CODE_ID and mon.TB_ID='STUDST'
    left outer join wsadmin.TB_ASR_STUDASSESSDATA c
    on a.SUID = c.SUID and a.STUID = c.STUID and c.SCHYEAR = a.SCHYEAR-1 and c.TIMESEQ = 1200
    left outer join wsadmin.TB_ASR_STUDASSESSDATA d
    on a.SUID = d.SUID and a.STUID = d.STUID and a.SCHYEAR = d.SCHYEAR and d.TIMESEQ = 1100
    where a.schyear=? and mon.CODE_ID in ('1','5')
    order by Diff desc


    但如果老師做了以上的動作也執行不到,請聯絡校主作進一步跟進。謝謝
     
    #11 edb-catherinewschan, 2022-03-11
    Last edited: 2022-03-11
  12. 10004315

    chautc
    Expand Collapse

    文章:
    73
    讚:
    0
    做到了! 雖然未能用一條SQL一次過提取到所需要的紀錄,但能夠用兩條SQL分兩次提出所需資料,
    初步都能夠解決到問題,謝謝你的協助。