我要从一张con_book(上课登记表)中查出一个月各位老师”所“上的课”及“次数”
我的表结构如下:
memberno --上课登记的学生ID号
objtime  --登记的时间
itemid   --所上课程(如:口语)
tableid  --课程所属班的名字(如:英语全能班)
ctzid    --授课老师姓名
因为是同一个课每来一个学生都会增加一条记录,如口语课有78条记录,其实是某位老师上的一次课,问题在于我一周有好几次重复的课,所以怎么样才能更好的分辨出时间,我估计是需要一个比较复杂的查询,希望高人指点,或是指明思路!谢谢

解决方案 »

  1.   

    select ctzid,count(ctzid) from con_book group by ctzid
      

  2.   

    登记的时间和上课等级的学生id是什么
    每个学生每上一节课就会生成一个id和登记时间吗
    写代码前要先明确,根据什么来区分或者你给个例子,写上原数据和查询结果
    会更容易明白
      

  3.   

    create table con_book (
    memberno number,
    objtime date,
    itemid number,
    tableid number,
    ctzid number);insert into con_book values(1,sysdate,2,0,1001);
    insert into con_book values(2,sysdate,2,0,1001);
    insert into con_book values(3,sysdate,2,0,1001);
    insert into con_book values(4,sysdate,2,0,1001);
    insert into con_book values(5,sysdate,2,0,1001);
    insert into con_book values(6,sysdate,2,0,1001);
    insert into con_book values(1,sysdate+1,2,0,1001);
    insert into con_book values(2,sysdate+1,2,0,1001);
    insert into con_book values(1,sysdate,3,0,1001);
    insert into con_book values(2,sysdate,3,0,1001);
    insert into con_book values(2,sysdate,4,0,1002);SQL> select ctzid,itemid,count(distinct to_char(objtime,'yyyy-mm-dd')) from con_book group by ctzid,itemid;     CTZID     ITEMID COUNT(DISTINCTTO_CHAR(OBJTIME,
    ---------- ---------- ------------------------------
          1001          2                              2
          1001          3                              1
          1002          4                              1SQL> 
      

  4.   


    select ctzid as 老师,itemid as 课程名,sum(memberno) as 课程次数 
    from con_book 
    where memberno='***'
    group by ctzid,memberno,itemidgroup by ctzid,memberno
    按老师和学生分组
    老师和某个学生的ID见过一次就算是一堂课了
    但是要保证这个学生每堂课都来啊,呵呵
      

  5.   


    SYSdate 是日期统计吧,和时间有区别吧.如果老师一天上2次课,那不是统计称一次了
      

  6.   

    参考语句:
    select ctzid 老师,itemid 所上课程,count(*)  次数
    from
    (select objtime,ctzid ,itemid
    from con_book
    group by objtime,ctzid,itemid)
    group by ctzid,itemid