select dev_type_id , count(dev_type_id) as num from dev_info  where dev_state = 0 grouy by dev_type_id 这个语句 可以出处 类型,和这个类型的数据行数即   dev_type_id      num
          1             2
         2             1
         3             20但是  当num 的值为零时,结果集中不会显示我要的结果是
     dev_type_id      num
         1             2
         2             1
         3             20
         4             0怎样写SELECT 语句才能 显示 最后面那条数据 (即  4    0 )

解决方案 »

  1.   

    select a.dev_type_id, nvl(b.num, 0) num
      from (select distinct dev_type_id from dev_info) a,
           (select dev_type_id, count(dev_type_id) as num
              from dev_info
             where dev_state = 0 grouy by dev_type_id) b
     where a.dev_type_id = b.dev_type_id(+)
      

  2.   

    select dev_type_id , count(dev_type_id) as num from dev_info  where dev_state = 0 grouy by dev_type_id union all select 4,0 from dual;
      

  3.   

    你的(4)这个数据是在你这个表里的吗?
    如果是,那没有道理不显示.如是不是,那么你只能牵强地来union all,就是二楼的结果.
      

  4.   

    只要dev_type_id存在就会显示的。不管为特殊符号否。
    这个很简单的。就是两个查询的左连接。思路很简单。我也不知道怎样可以简化了。
      

  5.   

    恩,说简单也简答
    我说的特殊符号 是指 和 distinct ,group by 类似,加了 就可以显示,或者有个什么函数什么的
      

  6.   

    为方便以后可能的读者 ,按照惯例 总结一下:正解:(我测试过)
        select a.dev_type_id, nvl(b.num, 0) num
      from (select distinct dev_type_id from dev_info) a,
           (select dev_type_id, count(dev_type_id) as num
              from dev_info
             where dev_state = 0 grouy by dev_type_id) b
     where a.dev_type_id = b.dev_type_id(+)
     
    即 :一楼 linzhangs  的解答谢谢 linzhangs  谢谢各位给出解答的朋友