select a.所属专业,c.种类名称 from a,b,c where a.计划编号=b.计划编号 and b.计划种类编号=c.计划种类编号 
 minus select count(作业编号) from a minus select count(作业编号) from a where a.计划编号=b.计划编号 and b.状态='完成'
 minus select count(作业编号) from a where a.计划编号=b.计划编号 and b.状态='未完成'

解决方案 »

  1.   

    未测试select a.所属专业,c.种类名称,
           sum(decode( b.状态,'完成',1,0)),sum(decode(b.状态,'完成',0,1) 
      from a,b,c 
     where a.计划编号=b.计划编号 and b.计划种类编号=c.计划种类编号  
     group by a.所属专业,c.种类名称
      

  2.   

    select a.所属专业,a.种类名称,d.作业编号,e.完成作业编号,e.未完成作业编号 from 
    (select 所属专业,(select 种类名称 from 计划种类表 c where c.计划种类编号=(select 计划种类编号 from 计划列表 b where a.作业编号=b.作业编号)) 种类名称 
    from 作业列表 a,(select count(1) 作业编号 from 作业列表) d,(select sum(decode(状态,'完成',1,0)) 完成作业编号,sum(decode(状态,'未完成',1,0)) 未完成作业编号 from 作业列表) e )
      

  3.   

    select a.所属专业,a.种类名称,d.作业编号,e.完成作业编号,e.未完成作业编号 from 
    (select 所属专业,(select 种类名称 from 计划种类表 c where c.计划种类编号=(select 计划种类编号 from 计划列表 b where a.作业编号=b.作业编号)) 种类名称 
    from 作业列表 a,(select count(1) 作业编号 from 作业列表) d,(select sum(decode(状态,'完成',1,0)) 完成作业编号,sum(decode(状态,'未完成',1,0)) 未完成作业编号 from 作业列表) e )
      

  4.   

    select a.所属专业,a.种类名称,d.作业编号,e.完成作业编号,e.未完成作业编号 from 
    (select 所属专业,(select 种类名称 from 计划种类表 c where c.计划种类编号=(select 计划种类编号 from 计划列表 b where a.作业编号=b.作业编号)) 种类名称 
    from 作业列表 a,(select count(1) 作业编号 from 作业列表) d,(select sum(decode(状态,'完成',1,0)) 完成作业编号,sum(decode(状态,'未完成',1,0)) 未完成作业编号 from 作业列表) e )