情况是这样的。。有二张表,table1为主表,table2为细表。二者之间以字段bianma
(编码)相连。二表结构如下:table1结构如下:bianma(编码)
name(姓名)
.....(其他若干字段)table2结构如下:bianma(编码)
yuefen(月份)
benyuejine(本月金额)
一个窗口。ADOTable1/ADOTable2,DBGrid1/DBGrid2,,DataSource1/DataSource2 六个数据库控件分别与这两个表(table1/table2)相连。当在DBGrid1中选中某一编码时(bianma)。DBGrid2中出现相应本编码的各月金额记录。。我想要求的功能是:在DBGrid1中增加一字段heji(合计),本字段(heji)自动显示本编码的各月金额之和。我知道可能利用计算字段即可解决。。但在ADOTable1的OnCalcFields事件中却不知应该怎么来进行合计。请各位朋友帮帮忙。。谢谢。

解决方案 »

  1.   

    对不起。。我说的简单是感觉应该比较简单。。因为我太笨了和刚刚学delphi。。不要误会:)。
      

  2.   

    我表达得太差了??我的意思就是"在DBGrid1中增加一计算字段heji(合计),本字段(heji)自动显示当前编码的各月金额之和。"
      

  3.   

    这样。。打个比方说吧。table2中有如下几条记录:bianma(编码)   yuefen(月份)      jine(金额)10011                1月             140
    10011                2月             340
    10012                1月             150
    10013                1月             100
    10013                2月             350
    10013                3月             150
    10014                1月             100我的目的就是在DBGrid1中增加一字段heji ,当在DBGrid1中选中编码10013时,这个字段把所有table2中关于10013的各月金额加起来:100+350+100=550。。就是要把550这个数字显示出来。。
      

  4.   

    我要问的就是怎么达到自动合计的目的。如当在DBGrid1中选中编码10013时,这个字段显示出所有table2中编码为10013的各月金额之和。。应该怎么实现这个功能呢?是用计算字段,还是用sql语句??具体怎么做呢?
      

  5.   

    建议第二个表不要用TADOTable,可以用TDAOQuery或TADODataSet
    Select Sum(jine) AS heji
    Form Table2
    Where bianma= var1var1是bianma从表1中读出的
      

  6.   

    类似如下分组功能:  
    sql.Add('select 字段2,sum(字段9) from db group by 字段2 order by sum(字段9) desc');