请教高手关于跨表查询问题.有学生表和考勤表,
学生表中考勤卡号和考勤表中的考勤卡号是一一对应的,
现在对考勤表按学生的学号,姓名,班级,考勤时间段进行组合查询,应该怎么处理啊?在线等待,解决了立即给分,分不够再加
数据库是access的,表结构如下
学生表(student)
stuid   学号          文本
name    姓名          文本
kqid1   考勤卡号      文本
class   所在班级      文本考勤表(kq)
id                    自动编号
kqtime  刷卡时间      日期/时间
kqid2   考勤卡号      文本
kqstate 考勤状态      文本
怎样实现对考勤表进行按学生的学号,姓名,班级,考勤时间段进行组合查询,请大虾指点,解决了另开贴子给分,多谢!!!

解决方案 »

  1.   

    在线等待,关键是不知道如何实现,我用的是ADOQUERY
    打印的时候可以通过计算字段显示学生的姓名之类,但是按学生的学号,姓名,班级来查询就不行了,高手有什么办法解决吗,谢谢
      

  2.   

    Select S.stuid,S.name,S.class,K.kqtime 
    From Student as S , kq as K 
    where S.kqid1=k.kqid2
      

  3.   

    我试一下,这sql可用在组合查询的时候吗?
      

  4.   

    moonstar1014(月亮星):你的sql是从student表找到两表kqid一致所有的学生名和班级信息,
    我现在是需要在考勤表上面进行查询啊,你这样没有什么作用啊
      

  5.   

    其中where后的...为查询条件,你自己组合吧
    select a.*, b.stuid from kq a, (select stuid, kqid1 from student where ...) b where a.kqid2 = b.kqid1 and a.kqtime=#...#
      

  6.   

    窗体上放edit_学号,edit_姓名,edit_班级,edit_学号,edit_考勤时间
    with adoquery1 do
    begin
      close;
      sql.clear;
      sql.add( 'Select S.*,K.* From Student as S,kq as K where S.kqid1=k.kqid2 and 1=1');
      if edit_学号.text <> '' then 
       sql.add( 'and stuid = ' +QuotedStr(edit_学号.text));
        if edit_姓名.text <> '' then 
       sql.add( 'and name = ' +QuotedStr(edit_姓名.text));
        if edit_班级.text <> '' then 
       sql.add( 'and class = ' +QuotedStr(edit_姓名.text));
      ..
       sql.add(order by name);
      open;
    end;
      

  7.   

    qizhanfeng(glacier):谢谢,我试一下