两个表
表1学生表student
ID Name
1  小王
2  小李
表2每次考试的成绩 studentfz
NameID chengji kemu shijian
1      100      语文  2008-07-10
2      95       语文  2008-07-10
2      99       数学  2008-10-05
1      93       数学  2008-10-05
1      89       语文  2009-01-10
2      97       数学  2009-01-10
第一目的已经实现,即以姓名为引子查询出学生各科成绩的总和
select ID as 编号,Name as 姓名,Sum(case kemu when '语文' then chengji else 0 end) 语文总分 Sum(case kemu when '数学' then chengji else 0 end) 数学总分,sum(chengji) 全部总分 from studentfz a left join student b on a.NameID=b.ID group by Name,ID
现在的问题是:如何查出各时间段里的成绩
比如2008-10-05,和2009-01-10这是一个学期的,试过用where可是出错.
谢谢各位了,在线急等.

解决方案 »

  1.   

    where shijian>'2008-10-05' and shijian<'2009-01-11'是查某段时间的所有记录,还是按时间统计?
      

  2.   

    接上述语句,
    where Name like '%" + txtNameSearch.Text.Trim() + "%' and shijian>'2008-10-05' and shijian<'2009-01-11'
    一个where 下用了两个表的字段
    + txtNameSearch.Text.Trim() +是姓名查询的textbox
      

  3.   


    where b.Name like '%" + txtNameSearch.Text.Trim() + "%' and a.shijian>'2008-10-05' and a.shijian <'2009-01-11' 
      

  4.   

    select ID as 编号,Name as 姓名,
      Sum(case kemu when '语文' then chengji else 0 end) 语文总分,
      Sum(case kemu when '数学' then chengji else 0 end) 数学总分,
      sum(chengji) 全部总分 
    from studentfz a left join student b 
    on a.NameID=b.ID 
    group by Name,ID 
    where a.shijian between '2008-10-05' and '2009-01-10'
      

  5.   


    where Name like %'" + txtNameSearch.Text.Trim() + "'% 
    and shijian>'2008-10-05' and shijian <'2009-01-11'