我想要在窗体上的DBGrid显示以下几个字段(注:窗体上有spinedit1和spinedit2):
字段名称      来自哪个表                              条件
cid           dingdan          
cname         dingdan
pmonthjy      dingdan表中的sum(allmoney)       allmoney是dingdan中的字段 
tmonthfs      dingdan表中的sum(allmoney)       allmoney是dingdan中的字段
tmonthsr      pfukuan表中的sum(moneyno)        moneyno是pfukuan中的字段
tmonthjc                                    pmonthjy+tmonthfs-tmonthsr
其中:pmonthjy是上个月的sum(allmoney);tmonthfs是本月的sum(allmoney);
我写了以下代码,不过总是出错,希望高手指教,我的QQ是120589204
procedure Tcmmrepform.ToolButton1Click(Sender: TObject);
var strsql:string;
begin
 adoquery1.Close;
  adoquery1.SQL.Clear;
  strsql:='';
  strsql:=strsql+'select cid as 客户编号,cname as 客户名称,sum(allmoney in (select allmoney from dingdan where year(systime)<='+trim(spinedit2.Text)+' and month(systime)<'+trim(spinedit1.Text)+'))as allmoney from dingdan group by cid,cname,allmoney';
  adoquery1.SQL.Add(strsql);
  adoquery1.Open;
  adoquery2.Close;
  adoquery2.SQL.Clear;
  adoquery2.sql.Add('select sum(allmoney) as 本月发生 from dingdan where year(systime)='+trim(spinedit2.text)+' and month(systime)='+trim(spinedit1.text)+'');
  adoquery2.Open;
  adoquery3.Close;
  adoquery3.SQL.Clear;
  adoquery3.SQL.Add('select sum(moneyno) as 本月收入 from pfukuan where year(moneytime)='+trim(spinedit2.text)+' and month(moneytime)='+trim(spinedit1.text)+'');
  adoquery3.Open;
  dbgrid1.Columns[0].FieldName:='客户编号';
  dbgrid1.Columns[1].FieldName:='客户名称';
  dbgrid1.Columns[2].FieldName:='上月结余';
  dbgrid1.Columns[3].FieldName:='本月发生';
  dbgrid1.Columns[4].FieldName:='本月收入';
end;

解决方案 »

  1.   

    pmonthjy是本月之前的sum(allmoney);
      

  2.   

    DELPHI里的字符串加变量值要用三个引号,把你的adoquery3.SQL.Add('select sum(moneyno) as 本月收入 from pfukuan where year(moneytime)='+trim(spinedit2.text)+' and month(moneytime)='+trim(spinedit1.text)+'');
    改为
    adoquery3.SQL.Add('select sum(moneyno) as 本月收入 from pfukuan where year(moneytime)='''+trim(spinedit2.text)+''' and month(moneytime)='''+trim(spinedit1.text)+'''');看看
    其他相同要改
      

  3.   

    dbgrid只能显示cid和cname,其他字段不会显示,请各位高手赐教