m:=edit1.Text;
form1.adoQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 in (select 收费编号 from 收费表 where between :ss and :mm)';
form1.ADOQuery2.Parameters.ParamByName('ma').Value:=m;
form1.ADOQuery2.Parameters.ParamByName('ss').Value:=r1;
form1.ADOQuery2.Parameters.ParamByName('mm').Value:=m1;
form1.ADOQuery2.Open;
form1.DBGrid1.Refresh;请问这个SQL语句该怎么改呀?
form1.adoQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 in (select 收费编号 from 收费表 where between :ss and :mm)';
form1.ADOQuery2.Parameters.ParamByName('ma').Value:=m;
form1.ADOQuery2.Parameters.ParamByName('ss').Value:=r1;
form1.ADOQuery2.Parameters.ParamByName('mm').Value:=m1;
form1.ADOQuery2.Open;
form1.DBGrid1.Refresh;请问这个SQL语句该怎么改呀?
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 in (select 收费编号 from 收费表 where (條件) between :ss and :mm)';
t1,t2,t3:string;
m:string;
r1,r2:real;
m1:real;
q:TADOQuery;……………………
m:=edit1.Text;
form1.adoQuery2.SQL.Clear;
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 in (select 收费编号 from 收费表 where 收费编号 between :ss and :mm)';
form1.ADOQuery2.Parameters.ParamByName('ma').Value:=m;
form1.ADOQuery2.Parameters.ParamByName('ss').Value:=r1;
form1.ADOQuery2.Parameters.ParamByName('mm').Value:=m1;
form1.ADOQuery2.Open;
form1.DBGrid1.Refresh;编译时没有错误了,运行时显示:
标准表达式中数据类型不匹配对了,我数据库中,医生姓名是字符型,收费编号是双精度型。
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 in (select 收费编号 from 收费表 where 收费编号 between :ss and :mm)';
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = '''+ma+''' and 收费编号 in (select 收费编号 from 收费表 where 收费编号 between '''+ss+''' and '''+mm+''')';
form1.ADOQuery2.SQL.Text:='select * from 收费表 where 医生姓名 = :ma and 收费编号 between :ss and :mm 得了,还用查二边吗?join运算很费资源得