现在我的数据库要求按以下字段中的内容进行筛选:
(1)depart_no : 部门,要求筛选出部门号首位为‘D’(D///,D1//,D11/, D2//,D21/,D22/,D3//,D31/,D32/))
(2)class_code : 职务级别, 要求筛选出C级所有职工(如:C1,C2,C3,C4)
(3)in_comp: 进厂年月, 要求筛选出某一时间段内进厂的职工
以上三个条件不一定同时有,或许只有其中一个,或许有其中两个,或许三个都要满足。请问如何写出出表达式并赋给ADOTABLE的FILTER属性,或者如何写出SQL语句。
(1)depart_no : 部门,要求筛选出部门号首位为‘D’(D///,D1//,D11/, D2//,D21/,D22/,D3//,D31/,D32/))
(2)class_code : 职务级别, 要求筛选出C级所有职工(如:C1,C2,C3,C4)
(3)in_comp: 进厂年月, 要求筛选出某一时间段内进厂的职工
以上三个条件不一定同时有,或许只有其中一个,或许有其中两个,或许三个都要满足。请问如何写出出表达式并赋给ADOTABLE的FILTER属性,或者如何写出SQL语句。
FROM yourTable
WHERE (depart_no LIKE 'D%') OR (class_code LIKE 'C%')
OR (in_comp BETWEEN '2003/03/01' AND '2004/03/01')ADOTABLE的FILTER属性就和SQL文的WHERE条件是一样的.
FROM yourTable
WHERE left(depart_no,1)='D' OR left(class_code,1)='C'
OR (in_comp BETWEEN '2003/03/01' AND '2004/03/01')这句应该也是可以的。
qyda031.Close;
qyda031.SQL.Clear ;
qyda031.SQL.Add('select * from da030 where (Date>=:d1)and(Date<=:d2)');
qyda031.SQL.Add('and(fileId like ''%'+EfileID.text+'%'')');
qyda031.SQL.Add('and(zutici like ''%'+Ezutici.text+'%'')');
qyda031.SQL.Add('and(timu like ''%'+Etimu.Text+'%'')');
qyda031.SQL.Add('and(Company like ''%'+Ecompany.Text+'%'')');
qyda031.SQL.Add('and(Note like ''%'+Enote.text+'%'')');
qyda031.ParamByName('d1').AsDateTime :=DateTimePicker1.DateTime ;
qyda031.ParamByName('d2').AsDateTime :=DateTimePicker2.DateTime ;
qyda031.Open;