select  userid,decode(useid,null,0,count(*))  from bill
group by userid

解决方案 »

  1.   

    您这个是统计类似分组的吧?
    我现在是已经有一组数据了。
    比如:userid:1 userid:2 userid:3 userid:4
    然后统计1 2 3 4在bill中的数量。
    有可能userid在bill中没有。这时候需要设置为0
      

  2.   


    select tab.userid, decode(bill.useid, null, 0,count(*))
      from bill, tab
     where bill.userid(+) = tab.userid
     group by tab.userid
    这对吗?最好,写点数据示意一下。
      

  3.   

    左右连接写错了吧你这个明显都不是group by 表达式 应该是group by tab.userid,bill.userid 吧
      

  4.   


    现在的问题,tab不是一个表。
    我现在的问题是:我已经有了一组数据了。
    根据这组数据来统计的。
    这组数据对应的bill表可能没有这个数据。
    最后返回的结果应该是:
    列名:userid        count
    数据:代表userid    统计的数量,可能为0
      

  5.   

    看了题意  连接没错
     但是group by 应该是错了的
      

  6.   

    tab不是表  你不能做成个临时表?
      

  7.   


    临时表?
    我的数据是后来动态程序中传进来的。
    没有了解过临时表啊。
    你的是做个真实的表作为临时表?
     条件不允许那你就做个list 循环一次一次获取
      

  8.   


    临时表?
    我的数据是后来动态程序中传进来的。
    没有了解过临时表啊。
    你的是做个真实的表作为临时表?
     条件不允许那你就做个list 循环一次一次获取无语,那还需要问么?
    都考虑过了。
      

  9.   


    临时表?
    我的数据是后来动态程序中传进来的。
    没有了解过临时表啊。
    你的是做个真实的表作为临时表?
     条件不允许那你就做个list 循环一次一次获取无语,那还需要问么?
    都考虑过了。
    不允许创建表 ,那你就把这list的数据也插到 bill表里面,用个字段标示一下  行不行的?然后下次再作比较时,把之前做过标示的都删掉,再重新插入比较
      

  10.   


    临时表?
    我的数据是后来动态程序中传进来的。
    没有了解过临时表啊。
    你的是做个真实的表作为临时表?
     条件不允许那你就做个list 循环一次一次获取无语,那还需要问么?
    都考虑过了。
    不允许创建表 ,那你就把这list的数据也插到 bill表里面,用个字段标示一下  行不行的?然后下次再作比较时,把之前做过标示的都删掉,再重新插入比较呵呵,你太弱了
      

  11.   

    是,group by,少了个字段。楼主的意思还是再说明白点。0、条件不容许=?建表无权限?
    1、什么不想一条一条做?目的=?缺点=?
    2、都想什么方法了,为什么不行?
    3、那个传过来的所谓tab数据量多大?bill表多大?有时间制约?
    4、动态程序中传进来的,还要完整sql,是想用in 、with形成sql查?就像如下,
    select * from bill,(select 'a' userid from dual union select 'a' userid from dual union ...)呵呵,到现在还是不明白。
      

  12.   


    临时表?
    我的数据是后来动态程序中传进来的。
    没有了解过临时表啊。
    你的是做个真实的表作为临时表?
     条件不允许那你就做个list 循环一次一次获取无语,那还需要问么?
    都考虑过了。
    不允许创建表 ,那你就把这list的数据也插到 bill表里面,用个字段标示一下  行不行的?然后下次再作比较时,把之前做过标示的都删掉,再重新插入比较呵呵,你太弱了
    你这么说不好吧,好歹人家在热心帮忙出主意呀
      

  13.   

    要代码,没有具体需求和运行环境。要SQL,没有建表语句和基本数据。这种煞笔问题就该一直挂着。
      

  14.   

    select userid, nvl(cnt, 0)
      from (select userid, count(*) as cnt from bill group by userid)是这样吧,不过count(*)如果为空的话是不是自动补0呢
      

  15.   

    select  userid,count(*)  from bill group by userid
    数据取出来,在程序里面比较,
    按照你的那组数据,没有的userid再添加0,你想sql一步到位,按照你的要求,那是不可能的。
      

  16.   


    就是oracle的呀,亲。
    在oracle板块问的问题,当然是oracle的啦。
    你眼睛有问题么。还是你是真B???
      

  17.   


    就是oracle的呀,亲。
    在oracle板块问的问题,当然是oracle的啦。
    你眼睛有问题么。还是你是真B???煞笔,你要的是代码还是SQL?
    你眼睛有问题么。还是你是真B??