业务单表,字段:id,depts_id,accept_date(接单时间),bustype_name(业务名称);部门,字段:id,name.
现在通过接单时间按月来统计,比如现在1月就统计本月的接单量和上一月的接单量,还有去年1月份的接单量,同时查询出部门名称,没有接单的部门用0表示,

解决方案 »

  1.   

    select a.name,
           to_char(b.accept_date,'yyyymm'),
           count(b.id)
    from 部門   a,
         業務表 b
    where a.id=b.depts_id(+)
    and  ( to_char(b.accept_date,'yyyymm')=to_char(sysdate,'yyyymm')
          or to_char(b.accept_date,'yyyymm')=to_char(add_months(sysdate,-1)
          or to_char(b.accept_date,'yyyymm')=to_char(add_months(sysdate,-12),'yyyymm')
          )
    group by a.name,to_char(b.accept_date,'yyyymm')
      

  2.   

    select a.id,
           a.Name,
           nvl(sum(decode(to_char(接单时间, 'yyyymm') = to_char(sysdate, 'yyyymm'),
                          1,
                          0)),
               0) as 本月接单笔数,
           nvl(sum(decode(to_char(接单时间, 'yyyymm') =
                          to_char(add_months(sysdate, -1), 'yyyymm'),
                          1,
                          0)),
               0) as 上月接单笔数,
           nvl(sum(decode(to_char(接单时间, 'yyyymm') =
                          to_char(add_months(sysdate, -12), 'yyyymm'),
                          1,
                          0)),
               0) as 去年当月接单笔数,
      from 部门 a
      left join 业务单表 b on a.id = b.depts_id
      

  3.   

    不好意思,少了GROUP BY a.id,
      a.Name