看板 Database 關於我們 聯絡資訊
※ 引述《adrianshum (Alien)》之銘言: : ※ 引述《yuchia69 (最愛 梁靜茹 ^^)》之銘言: : : 各位大大你好 我用SQL2000 SP4 : : (在DB上 我的權限只能query) : : 我有2個table a(課碼a1,課名a2) : : b(課碼b1,學號b2,分數b3) : : 我要如何同時算出 修課人數 和 及格人數 : : 我的寫法是 : : select a.a2, count(*) as '修課人數', count(*) as '及格人數' : : from a,b : : where a.a1=b.b1 : : group by a.a1 : : order by a.a1 : : 可是b.b3>=60 不知道要寫在哪邊 才能算出及格人數 : b join 兩次吧 : 大概是 select a, count(bAll.id), count(bPass.id) : from a : inner join b bAll : where bAll.b1 = a.a1 : left join b bPass : where bPass.id = bAll.id : and bPass.b3 >= 60 : group by a.a1 : 也可以用 case 之類的做法, 留給你自己想吧 : (我不熟 sql server, 回文只是根據一般的 dbms/sql) 感謝提供用case的想法 我也順利解出 所以把作法提供給大家參考 select a.a2, count(*) as '修課人數', sum(case when b.b3 >= 60 then 1 else 0 end) as '及格人數' from a,b where a.a1=b.b1 group by a.a1 order by a.a1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.99.140