我是這樣實現的﹐代碼如下﹕
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select post,sum(oldperson) as sold,sum(ins) as sins,sum(del) as sdel,sum(import) as simp,sum(export) as sexp from depinfo');
sql.add('group by post=''管理職''');
sql.Add('where post=:po and todate between :day1 and :day2');
parameters.ParamByName('day1').Value := datetimepicker1.DateTime-1;
parameters.ParamByName('day2').Value := datetimepicker2.DateTime;
open;
end;
with dbchart1 do
begin
Series1.Clear;
series1.Add(adoquery2.fieldbyname('sold').AsInteger+adoquery2.fieldbyname('sins').AsInteger-adoquery2.fieldbyname('sdel').AsInteger+adoquery2.fieldbyname('simp').AsInteger-adoquery2.fieldbyname('sexp').AsInteger,adoquery2.fieldbyname('post').asstring,clteecolor);
end;
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select post,sum(oldperson) as sold,sum(ins) as sins,sum(del) as sdel,sum(import) as simp,sum(export) as sexp from depinfo');
sql.add('group by post=''管理職''');
sql.Add('where post=:po and todate between :day1 and :day2');
parameters.ParamByName('day1').Value := datetimepicker1.DateTime-1;
parameters.ParamByName('day2').Value := datetimepicker2.DateTime;
open;
end;
with dbchart1 do
begin
Series1.Clear;
series1.Add(adoquery2.fieldbyname('sold').AsInteger+adoquery2.fieldbyname('sins').AsInteger-adoquery2.fieldbyname('sdel').AsInteger+adoquery2.fieldbyname('simp').AsInteger-adoquery2.fieldbyname('sexp').AsInteger,adoquery2.fieldbyname('post').asstring,clteecolor);
end;
应该为
sql.add('group by post');
sql.add('having post='''管理職''');