select netnodeno,count(date) as jrncount
from netnodeinfo_jrn 
group by netnodeno
假如我这里有个查询,查出来是一个
 netnodeno jrncount
 1          2
 2          4
 3           5
 4         2
 5           1
 6          2
 7         2
 8         2如果我要加一个where条件 where date>'20021101'
然后查出来会少很多 ,假如说是 netnodeno jrncount
 1          1
 2          4
 3           2
 4         2
 5           1我是希望能够让 netnodeno全部显示,其他的jrncount如果在条件不符合的话用0表示,如何弄呢?

解决方案 »

  1.   

    select netnodeno,count(date) as jrncount
    from netnodeinfo_jrn 
    where date> to_date('20021101','yyyymmdd') 
    group by netnodeno
      

  2.   

    select netnodeno,sum(case when date>'20021101' then 1 else 0 end) as jrncount
    from netnodeinfo_jrn 
    group by netnodeno
      

  3.   

    select netnodeno,sum(case when date>'20021101' then 1 else 0 end) as jrncount
    from netnodeinfo_jrn 
    group by netnodeno
      

  4.   

    但是如果我是这样的语句select netnodeno,sum(convert(numeric(16),amt)) as atmcount
    from netnodeinfo_jrn 
    group by netnodeno 仍然加date条件,这个应该写在哪里
      

  5.   

    小弟是新手,看了楼上两位高人的答案,有不明白的地方想请教:
    sum(case when date>'20021101' then 1 else 0 end)这个怎么理解??如果 date>'20021101' then 1 是不是变成 sum(1)啊?对1求和??想不明白?
    呵呵,因为刚学sql,所以会问一些令大侠们感到可笑的问题,但请你们能给解答好吗?谢谢
      

  6.   

    而且我有时候可能会加多个条件,这些条件字段都是在netnodeinfo_jrn 表中的,该如何加呢