with query.DataModule2.Query10 do begin try Close;//必须先关闭! SQL.Clear; SQL.Add('select sum(可增加量) 可增加总量 from '); str:=Query.DataModule2.Query9.Name; SQL.Add(str); open; except ...... end; end;
to plainsong(伤心的风) 在整个应用程序中,我没有用到Query10啊,我想与这个没有关系关键是Query8执行后,它的数据集记录在存放在哪(不管在内存,还是以磁盘临时区),它是以什么名称存在!你说呢?这里涉及的是对TQuery查询结果的再一次统计(sum)谢谢!
这样应该不可以的,你可以用嵌套select语句
对Query的查询结果是不能进行二次查询的,用嵌套的Select语句应该可以实现
with query.DataModule2.Query10 do begin try SQL.Clear; SQL.Add('select sum(可增加量) 可增加总量 from '); str:=Query.DataModule2.Query9.Name;//将上面一行改为:str:=Query.DataModule2.Query9.tablename; SQL.Add(str); open; except ...... end; end;
with query.DataModule2.Query10 do begin try Close;//必须先关闭! SQL.Clear; SQL.Add('select xx = aa.xx,ff = sum(aa.dd) from ( '); str:=Query.DataModule2.Query9.text; SQL.Add(str); SQL.Add(') aa group by aa.xx'); open; except ...... end; end;
var tmp_value:integer; begin with query do begin close; sql.clear; sql.add('select sum(可增加量) 可增加总量 from tabel'); Open; tmp_value:=Fields[0].Value;
with query.DataModule2.Query10 do
begin
try
Close;//必须先关闭!
SQL.Clear;
SQL.Add('select sum(可增加量) 可增加总量 from ');
str:=Query.DataModule2.Query9.Name;
SQL.Add(str);
open;
except
......
end;
end;
begin
try
SQL.Clear;
SQL.Add('select sum(可增加量) 可增加总量 from ');
str:=Query.DataModule2.Query9.Name;//将上面一行改为:str:=Query.DataModule2.Query9.tablename; SQL.Add(str);
open;
except
......
end;
end;
begin
try
Close;//必须先关闭!
SQL.Clear;
SQL.Add('select xx = aa.xx,ff = sum(aa.dd) from ( ');
str:=Query.DataModule2.Query9.text;
SQL.Add(str);
SQL.Add(') aa group by aa.xx');
open;
except
......
end;
end;
tmp_value:integer;
begin
with query do
begin
close;
sql.clear;
sql.add('select sum(可增加量) 可增加总量 from tabel');
Open;
tmp_value:=Fields[0].Value;