工种     "应参加人数""实际参加人数" 合格人数 合格率
起重工 1 1          1         100.0 
探伤工 1 1          1         100.0 
制氧工 1 0          0.0        0
机械检查工 1 1          1  100.0 
铆焊检查工 3 3          2  66.7 SELECT 工种,count(*) as ykrs,count(*) from thisterm  group by 工种
只能统计出前两列
实际参加人数为 biaoji<>'-4' 
合格人数为 point>=60 的
怎么写?thks

解决方案 »

  1.   

    什么叫“只能统计出前两列”??是“只需要统计出前两列”吗?”还有,你自己写的“SELECT 工种,count(*) as ykrs,count(*) from thisterm  group by 工种”让人很不明白你的意图。在你的表中,每个工种是只有一条记录还是有多条记录??如果一个工种只有一条记录,count(*) 又有什么意义??最后是你究竟想统计出什么数据呢?
      

  2.   

    SELECT 工种,count(*) as ykrs,sum(case when 条件 then 1 else 0 end) from thisterm  group by 工种
      

  3.   

    to tengjian1981(Fly): 看来您明白了我的意图,我试试
      

  4.   

    这条语句sum(case when 条件 then 1 else 0 end),在access中为什么不能运行,条件怎么写?
      

  5.   

    在SQL里:SELECT 工种,count(*) as ykrs,sum(case when 合格率>=60 then 1 else 0 end) from thisterm  group by 工种
    access我没用过呀