每个会议当天、本周、当月、当年开会数量,所有的结果在一个结果集中。两章表:aa表中有 roomid,roomname
        bb表中有id,roomid,starttime,endtime大侠们,帮看看!!

解决方案 »

  1.   

    我还是不明白怎么写·
    你看下我写的对吗?select roomid,roomname 
    case when To_char(starttime,'YYYY/MON/DD')=To_char(starttime,'YYYY/MON/DD') 
    then count(b.RoomID) when substr(to_char(startname,'YYYY/MM/DD'),6,2)=substr(to_char(sysdate,'YYYY/MM/DD'),6,2)
    then count(b.Roomid) when substr(to_char(startname,'YYYY/mm/DD'),9,2)=substr(to_char(sysdate,'YYYY/MM/DD'),9,2)
    then count(b.Roomid) when To_char(sysdate,'yy')=To_char(startime,'YY')
    then count(b.Roomid) end
    from TCourtRoom a,TTRail b where a.Roomid=b.Roomid group by b.Roomid;
      

  2.   

    select roomid,roomname,
    sum(case when to_char(startname,'YYYYMMDD')=to_char(sysdate,'YYYYMMDD') then 1
         else 0
       end) 当天开会数量 ,
    sum(case when to_char(startname,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
         else 0
       end) 本月开会数量 ,
    sum(case when to_char(startname,'YYYY')=to_char(sysdate,'YYYY') then 1
         else 0
       end) 本年开会数量 ,
    sum(case when to_char(startname,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
         else 0
       end) 本月开会数量 ,
    sum(case when to_char(startname,'YYYYWW')=to_char(sysdate,'YYYYWW') then 1
         else 0
       end) 本月开会数量
    from TCourtRoom a,TTRail b where a.Roomid=b.Roomid group by b.Roomid; 
      

  3.   

    select roomid,roomname,
    sum(case when to_char(startname,'YYYYMMDD')=to_char(sysdate,'YYYYMMDD') then 1
        else 0
      end) 当天开会数量 ,
    sum(case when to_char(startname,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
        else 0
      end) 本月开会数量 ,
    sum(case when to_char(startname,'YYYY')=to_char(sysdate,'YYYY') then 1
        else 0
      end) 本年开会数量 ,
    sum(case when to_char(startname,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
        else 0
      end) 本月开会数量 ,
    sum(case when to_char(startname,'YYYYWW')=to_char(sysdate,'YYYYWW') then 1
        else 0
      end) 本月开会数量
    from TCourtRoom a,TTRail b where a.Roomid=b.Roomid group by b.Roomid,,roomname; 
      

  4.   

    startname应该换成starttime,被搂住误导了
      

  5.   

    starttime没标识符。通过b.starttime,标识符又无效!!!
      

  6.   

    b表不是有starttime这个字段吗?
      

  7.   

    select a.roomid,a.roomname,
    sum(case when to_char(b.starttime,'YYYYMMDD')=to_char(sysdate,'YYYYMMDD') then 1
        else 0
      end) 当天开会数量 ,
    sum(case when to_char(b.starttime,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
        else 0
      end) 本月开会数量 ,
    sum(case when to_char(b.starttime,'YYYY')=to_char(sysdate,'YYYY') then 1
        else 0
      end) 本年开会数量 ,
    sum(case when to_char(b.starttime,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1
        else 0
      end) 本月开会数量 ,
    sum(case when to_char(b.starttime,'YYYYWW')=to_char(sysdate,'YYYYWW') then 1
        else 0
      end) 本月开会数量
    from TCourtRoom a,TTRail b where a.Roomid=b.Roomid group by a.Roomid,a.roomname; 
      

  8.   

    select a.roomid,a.roomname, 
    sum(case when to_char(b.starttime,'YYYYMMDD')=to_char(sysdate,'YYYYMMDD') then 1 
        else 0 
      end) 当天开会数量 , 
    sum(case when to_char(b.starttime,'YYYYMM')=to_char(sysdate,'YYYYMM') then 1 
        else 0 
      end) 本月开会数量 , 
    sum(case when to_char(b.starttime,'YYYY')=to_char(sysdate,'YYYY') then 1 
        else 0 
      end) 本年开会数量 , 
    sum(case when to_char(b.starttime,'YYYYWW')=to_char(sysdate,'YYYYWW') then 1 
        else 0 
      end) 本周开会数量 
    from tcourtroom a,ttrial b where a.roomid=b.roomid group by b.roomid,a.roomname; 
    不是group by表达式·为什么》
      

  9.   

    换成group by a.Roomid,a.roomname
      

  10.   


    select aa.roomid, aa.roomname, 
           count(case when sysdate >= bb.starttime and sysdate <= bb.endtime 
                      then 1 
                 else null end) "当天开会数量",
           count(case when next_day(sysdate, 'mon') -7 <= bb.starttime 
                           and bb.starttime < next_day(sysdate, 'mon') -1 
                      then 1 
                      when tnext_day(sysdate, 'mon') -7 <= bb.endtime
                           and bb.endtime < next_day(sysdate, 'mon') -1 
                      then 1 
                 else null end) "本周开会数量",
           count(case when trunc(sysdate, 'mm') <= bb.starttime 
                           and bb.starttime < add_months(trunc(sysdate, 'mm'), 1) 
                      then 1 
                      when trunc(sysdate, 'mm') <= bb.endtime
                           and bb.endtime < add_months(trunc(sysdate, 'mm'), 1) 
                      then 1 
                  else null end) "当月开会数量",
           count(case trunc(sysdate, 'yyyy') <= bb.starttime 
                           and bb.starttime < add_months(trunc(sysdate, 'yyyy'), 12) 
                      then 1 
                      when trunc(sysdate, 'yyyy') <= bb.endtime
                           and bb.endtime < add_months(trunc(sysdate, 'yyyy'), 12) 
                      then 1 ) "当年开会数量"
      from aa left join bb on aa.roomid = bb.roomid
       group by aa.roomid, aa.roomname
      

  11.   

    诚聘DBA,地点大连。 本科以上学历,计算机或相关专业 
    -至少2年的Oracle数据库管理的相关经验 
    -熟悉Oracle的备份恢复,数据迁移,RAC,数据库调优和PL/SQL编写 
    -熟悉Red Hat和Solaris操作系统及Shell脚本编写 
    -熟练的英语听说读写能力 
    -良好的沟通和表达能力 
    -在高强度和富有挑战的工作环境下,进行有效工作的能力 
    -富有创造力,工作积极主动,能主动地与项目组其他成员进行合作 
    -高度认同公司的企业文化:尊重员工,诚实和正直,追求品质和卓越,以客户为中心,恪守个人职责和倡导团队精神,求变创新,专注于技术,社会责任。 有意者请联系[email protected]