小问题,TQuery方面的(10分)

  • 主题发起人 主题发起人 风无恨
  • 开始时间 开始时间

风无恨

Unregistered / Unconfirmed
GUEST, unregistred user!
一个aa字段里记录有Axxx、Bxxx、Cxxx三种类的数据(xxx为数值。000-999)
我想用select语句选择并比较出三类中最大的数值。
所以我想分别
select Max(aa)like “A%”
select Max(aa)like “B%”
select Max(aa)like “C%”
然后再比较
那我要添加三个TQuery还是可以一个就搞掂?
如果是一个的话应该真样写?
 
用一个TQUERY查询三次!
只查一次,我不会,但用三个TQUERY也太那个了!
 
一个搞定,不过要设置一个个变量:tem:integer
select Max(aa) as a like “A%”
tem:=fieldbynaem('a').value;
select Max(aa) as b like “B%”
if tem<fieldbyname('b') then tem:=fieldbyname('b').value;
select Max(aa) as c like “C%”
if tem<fieldbyname('c') then tem:=fieldbyname('c').value;
showmessage('最大值:'+inttostr(tem));
//上面查询语句我简化了.
 
呵呵,果然是好办法哦。先试试。^_^
 
I think you probably need WHERE in your SQL query.
 
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Sql.text:='select Max(email) from "c:/temp/newsz_cj.dbf" where email like "A%"';
Query1.Open;
tem:=Query1.Fields[0].AsString;
if tem<'A999' then
edit1.Text:=tem
else
begin
Query1.Sql.text:='select Max(email) from "c:/temp/newsz_cj.dbf" where email like "B%"';
Query1.Open;
tem:=Query1.Fields[0].AsString;
if tem='' then
edit1.text:='A999'
else
edit1.Text:=tem
end

end;
 
以上代码作用:
检索email字段(乱起的)A字头(Axxx)的数值显示最大数。
如果有A999则搜索有没Bxxx的数值,如果有就显示Bxxx的最大值。如果没就显示A999
 
多人接受答案了。
 
后退
顶部