SQL 想找出三科中最高的分數,應如何編寫SQL?

本文由 天 在 2019-09-12 發表於 "WebSAMS 討論區" 討論區

  1. 55002979

    Expand Collapse

    文章:
    110
    讚:
    0
    請問我想找出三科中最高的分數應怎樣處理,我試過編寫以下的SQL

    select classlvl, s.classname, c.classno, c.chname, a3. sysscore as 'Phy', a4. sysscore as 'Chem', a5. sysscore as 'Bio', max(a3. sysscore,a4. sysscore,a5. sysscore) from .........

    但得出以下訊息,

    SQL 錯誤: Exception:SQL Anywhere Error -154: Wrong number of parameters to function 'max'

    我明白了 max() 原來不是這樣用的,但想有一個欄位顯示最高的分數應如何編寫 SQL,請指教!
     
  2. 58521906

    edb-catherinewschan
    Expand Collapse

    文章:
    73
    讚:
    0
    你好, 可以試下把SQL改為.... ..

    select classlvl, s.classname, c.classno, c.chname, a3. sysscore as 'Phy', a4. sysscore as 'Chem', a5. sysscore as 'Bio', max(a3. sysscore), max(,a4. sysscore) , max(a5. sysscore) from .........
     
    #2 edb-catherinewschan, 2019-09-13
  3. 58700587

    edb-WMC
    Expand Collapse

    文章:
    5
    讚:
    0
    如果老師要找出的是每位學生於三科中最高成績的話,可考慮使用Greater這一function: greater(isnull(a1.sysscore, 0), greater(isnull(a2.sysscore, 0), isnull(a3.sysscore, 0)))
     
    #3 edb-WMC, 2019-09-13
  4. 55002979

    Expand Collapse

    文章:
    110
    讚:
    0
    感謝,原來有這一個 function 可用, 已成功解決問題。