select b.id,a."status=0数目",b.总数 from
   (select id ,count (*) "status=0数目" from tb where status =0 group by id) a,
   (select id , count (*) 总数         from tb group by id) b
where a.id(+)=b.id 

解决方案 »

  1.   

    问题基本解决 ,谢谢!结贴另外:
    假如表结构如下:
    表名:tb
    id status time
    100 0 xxx
    100 1 xxx
    101 1 xxx
    100 1 xxx
    101 1 xxx
    100 1 xxxselect语句如下:
    select b.id,a.状态为零数,b.总数 from
    (select id ,count (*) as 状态为零数 from tb where status =0 group by id) a,
    (select id ,count (*) as 总数 from tb where status =0 group by id) b
    where a.id(+)=b.id 第一句的结果是:
    id count(*)
    100 1
    (注:101的没有!!)
    第二句的结果是:
    id count(*)
    100 4
    101 2因为第一句查询结果中,没有101的记录!!
    所以结果会是只有一行:
    id 状态为零数  总数
    100 1 4但是现在想构造如下的查询结果,怎么实现那:
    id 状态为零数  总数
    100 1 4
    101 0 2
    实际问题中,我是有5种select语句。
    id值100-116
    用这种发法,每一种select出来的数目并不完全一样。
    怎么保证
    结果像
    id 状态为零数  总数
    100 1 4
    101 0 2





    。即,第二行101 的结果状态为零列 置成 0,怎么实现那
      

  2.   

    table键无效了,重写一下表结构:表名:tb
    id        status       time
    100       0            xxx
    100       1            xxx
    101       1            xxx
    100       1            xxx
    101       1            xxx
    100       1            xxx