sum(case 星期号='1' then 1 else 0 end)星期一

解决方案 »

  1.   

    sum(case 星期号 when '1' then 1 else 0 end)星期一
      

  2.   

    create table tb

    教师号 int not null, 
    星期号 char(2) not null, 
    是否有课 char(4) not null 

    insert into tb
    values (1,'2','有') 
    insert into tb
    values (1,'3','有') 
    insert into tb
    values (2,'1','有') 
    insert into tb
    values (3,'2','有') 
    insert into tb
    values (1,'2','有') 
    select 教师号, 
    sum(case 星期号 when '1' then 1 else 0 end) '星期一', 
    sum(case 星期号 when '2' then 1 else 0 end) '星期二', 
    sum(case 星期号 when '3' then 1 else 0 end) '星期三'
    From tb
    group by 教师号 drop table tb/*
    教师号         星期一         星期二         星期三         
    ----------- ----------- ----------- ----------- 
    1           0           2           1
    2           1           0           0
    3           0           1           0(所影响的行数为 3 行)
    */
      

  3.   

    sum(case 星期号 when '1' then 1 else 0 end) '星期一', 
    sum(case 星期号 when '2' then 1 else 0 end) '星期二', 
    sum(case 星期号 when '3' then 1 else 0 end) '星期三'
    可以稍微和我解释下这里吗? 这里是我看你发的文章里面 最没有搞的太清楚的地方,这里也算解这类题目的关键吧
    为什么 then 1 这样就可以得到总数为2的这个结果呢
      

  4.   

    --应该把 是否有课 = '有' 这个条件加上吧?
    create table tb

    教师号 int not null, 
    星期号 char(2) not null, 
    是否有课 char(4) not null 

    insert into tb
    values (1,'2','有') 
    insert into tb
    values (1,'3','有') 
    insert into tb
    values (2,'1','有') 
    insert into tb
    values (3,'2','有') 
    insert into tb
    values (1,'2','有') 
    select 教师号, 
    sum(case 星期号 when '1' then 1 else 0 end) '星期一', 
    sum(case 星期号 when '2' then 1 else 0 end) '星期二', 
    sum(case 星期号 when '3' then 1 else 0 end) '星期三'
    From tb
    where 是否有课 = '有'
    group by 教师号 drop table tb/*
    教师号         星期一         星期二         星期三         
    ----------- ----------- ----------- ----------- 
    1           0           2           1
    2           1           0           0
    3           0           1           0(所影响的行数为 3 行)
    */
      

  5.   

    就是
    判断到星期号为1则记录为1次,否则为0,
    判断到星期号为2则记录为1次,否则为0,
    判断到星期号为3则记录为1次,否则为0.
    最后按教师号分组求和.如果是max
    则为最后按教师号分组取最大.如果没组只有一条记录也得用max,这是为了满足分组加的个max而已.
      

  6.   

    真的万分感谢,我看你发的这个帖子是后 这个地方理解很模糊 
    现在你这样一说 就清楚多了 
    dawugui 万分感谢你!!!
    你应该改名 haowugui  呵呵