ID---KEY---createtime---updatetime----所属作业ID 
1----k1----2008/8/7-----2008/8/7------zy1 
2----k2----2008/8/7-----2008/8/7------zy1 
3----k3----2008/8/7-----2008/8/7------zy2 
4----k4----2008/8/7-----2008/8/7------zy3 
作业表: 
ID---KEY---作业名称---布置者 
zy1--k5----XX作业----XX老师 
zy2--k6----SS作业----TT老师 
zy3--k7----JJ作业----QQ老师 
zy4--k8----OO作业----UU老师 查出下面的效果: 作业key 作业name 日期 问题量 
key ----我给的作业名----我给的日期-----问题量 日期是可变的,只有年/年月/年月日 
结果就是查出我给的作业名在我给着这个时间内一共有多少问题量

解决方案 »

  1.   


    declare @name nvarchar(1000),@date datetime
    select [作业key]=a.[key],[作业name]=@name,日期=@date,问题量=count(*)
    from 作业表 a join 问题表 b on a.id=b.所属作业ID
    where a.作业名称=@name and datediff(d,createtime,@date)=0
      

  2.   


    --> 测试数据: @s
    declare @s table (ID int,[KEY] varchar(2),createtime datetime,updatetime datetime,所属作业ID varchar(3))
    insert into @s
    select 1,'k1','2008/8/7','2008/8/7','zy1' union all
    select 2,'k2','2008/8/7','2008/8/7','zy1' union all
    select 3,'k3','2008/8/7','2008/8/7','zy2' union all
    select 4,'k4','2008/8/7','2008/8/7','zy3'
    --> 测试数据: @作业表
    declare @作业表 table (ID varchar(3),[KEY] varchar(2),作业名称 varchar(6),布置者 varchar(6))
    insert into @作业表
    select 'zy1','k5','XX作业','XX老师' union all
    select 'zy2','k6','SS作业','TT老师' union all
    select 'zy3','k7','JJ作业','QQ老师' union all
    select 'zy4','k8','OO作业','UU老师'
    select a.[key],b.作业名称,a.createtime,(select count(1) from @s where 所属作业ID=a.所属作业ID) from @s a,@作业表 b where a.所属作业ID=b.id