程序代码太长了,我举个例子吧: 首先创建临时表,然后再访问这个临时表: txtsql:='create temporary table if not exists Tmp_Table '; txtsql:=txtsql+'SELECT c.DiseaseType,b.DiseaseName,COUNT(a.cattlenumber) AS MYCOUNT '; txtsql:=txtsql+'FROM DiseaseCureTable a,DiseaseCode b,DiseaseType c '; txtsql:=txtsql+'WHERE a.DiseaseCode=b.DiseaseCode and b.DiseaseTypeCode=c.DiseaseTypeCode and '; txtsql:=txtsql+'a.CureDate between :BeginDate and :EndDate '; txtsql:=txtsql+'group by c.DiseaseType,b.DiseaseName'; pquery.Close; pquery.SQL.Clear; pquery.SQL.Text:=txtsql; pquery.ParamByName('begindate').AsDate:=begindate; pquery.ParamByName('enddate').AsDate:=enddate; pquery.Prepared:=true; try pquery.ExecSQL(); pquery.close; pquery.sql.clear; pquery.sql.add('select * from Tmp_Table '); pquery.Prepared:=true; pquery.open; while not pquery.eof do begin //有时在执行下面这个判断语句时就会提示字段不存在. if pquery.fieldbyname(DiseaseType).asstring='aaa' then .... pquery.next; end;
首先创建临时表,然后再访问这个临时表:
txtsql:='create temporary table if not exists Tmp_Table ';
txtsql:=txtsql+'SELECT c.DiseaseType,b.DiseaseName,COUNT(a.cattlenumber) AS MYCOUNT ';
txtsql:=txtsql+'FROM DiseaseCureTable a,DiseaseCode b,DiseaseType c ';
txtsql:=txtsql+'WHERE a.DiseaseCode=b.DiseaseCode and b.DiseaseTypeCode=c.DiseaseTypeCode and ';
txtsql:=txtsql+'a.CureDate between :BeginDate and :EndDate ';
txtsql:=txtsql+'group by c.DiseaseType,b.DiseaseName';
pquery.Close;
pquery.SQL.Clear;
pquery.SQL.Text:=txtsql;
pquery.ParamByName('begindate').AsDate:=begindate;
pquery.ParamByName('enddate').AsDate:=enddate;
pquery.Prepared:=true;
try
pquery.ExecSQL();
pquery.close;
pquery.sql.clear;
pquery.sql.add('select * from Tmp_Table ');
pquery.Prepared:=true;
pquery.open;
while not pquery.eof do
begin
//有时在执行下面这个判断语句时就会提示字段不存在.
if pquery.fieldbyname(DiseaseType).asstring='aaa' then
....
pquery.next;
end;