N
ntjrr
Unregistered / Unconfirmed
GUEST, unregistred user!
for i := 0 to 15 do<br> begin<br> ADOQuery1.Close;<br> ADOQuery1.SQL.Clear;<br> ADOQuery1.SQL.Add('select round(sum(单项累计),2)as 金额 from 表A where 票据号 >= '''+kspjh+'''and 票据号<='''+jspjh+'''');<br> ADOQuery1.SQL.Add(' and 项目类型 =:项目类型');<br> ADOQuery1.Parameters.ParamByName('项目类型').Value := Tot_Name ;<br> ADOQuery1.Open;<br> end;<br><br> ADOQuery1.Close;<br> ADOQuery1.SQL.Clear;<br> ADOQuery1.SQL.Add('select 其它内容 from 表A where 票据号 >= '''+kspjh+'''and 票据号<='''+jspjh+'''');<br> ADOQuery1.Open;<br>上面取了两个例子,实际中可能要有五六次这样的查询,后面的票据号条件肯定是一样的,其它的条件和查询内容有一定的区别,我在想,这个数据是不断增长的,有可能会达到数十万条,如果这样查询下来会不会很慢,要不要先把满足票据号条件的记录先写到一个临时表里,然后其它的附加不同条件的查询从这个临时表里再查询?这样会不会快一点。但我以前在哪个地方看到一个资料,好象有这个说法,在进行数据库查询时,电脑本身已经会把第一次查询的资料提到内存中,再执行类似条件的查询就已经会加快了,所以用不用临时表都一样了?