有两个表,一个学生基本情况信息表(Student)有字段Student_ID(学号),Name(姓名)等,另一个学生成绩表(Achievement),有Student_ID(学号)
我做如下查询:
  按学生的姓名查询,提示出错,哪位高人能替我解决?
谢谢!THANKS! Case RadioGroup1.ItemIndex of
    0:
      with Fdm.AQ_Single do
      begin
        close;
        sql.clear;
        SQL.Add('select Achievement.* from Achievement,Student where Student_ID in (SELCECT Student_ID FROM Student where Name like ''%'+Edit1.Text+'%'')');
        open;
        end;
    1:
      with Fdm.AQ_Single do
      begin
        Close;
        sql.Clear;
        sql.add('select Achievement.* from Achievement,Student where Name in (SELECT Student_ID FROM Student Where Name='''+Edit1.text+''')');
    Open;
    end;
  end;

解决方案 »

  1.   

    Case RadioGroup1.ItemIndex of
        0:
          with Fdm.AQ_Single do
          begin
            close;
            sql.clear;
            SQL.Add('select * from Achievement where Student_ID in (SELCECT Student_ID FROM Student where Name like ''%'+Edit1.Text+'%'')');
            open;
            end;
        1:
          with Fdm.AQ_Single do
          begin
            Close;
            sql.Clear;
            sql.add('select * from Achievement where Name in (SELECT Student_ID FROM Student Where Name='''+Edit1.text+''')');
        Open;
        end;
      end;
      

  2.   

    sql.add('select Achievement.*,Student.* from Achievement,Student where Student.Student_ID=Achievement.Student_ID and student.name='''+Edit1.text+'''');
      

  3.   

    SQL.Add('select A.*,S.Name from Achievement as A left inner join Student as S on A.Student_id=S.Student_id where S.Name '''+Edit1.text+''''')
      

  4.   

    我是觉得查询没必要用这么复杂的 方法啦。
    你用ADODATASET组件看看,很方便的。
      如果你用EDIT1输入姓名查询,那在BUTTON中输入代码如下
      VAR I,J:INTEGER;
      ADODATASET1。FIRST;
      FOR I:=1 TO ADODATASET1。RECORDCOUNT DO
      BEGIN
        IF ADODATASET1。FIELDBYNAME(‘姓名’)。ASSTRING=EDTI1。TEXT
        THEN BEGIN
        ------
        姓名查询正确后的代码
        -----
        J:=1;
         BREAK;
        END;
         ADODATASET1。NEXT;
      END;
      IF J=0 THEN SHOWMESSAGE(‘你的姓名不正确’);