以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  急!!!SQL查询表数据如何实现随表内容的更改及时动态更新  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=13025)

--  作者:zerohand
--  发布时间:2011/9/24 21:59:00
--  急!!!SQL查询表数据如何实现随表内容的更改及时动态更新

说明:

有一个表A,其表的结构为  “客户名称,销售总金客,已收款,未收款,期初欠款”

================================

现需要对表数据进行统计,SQL语句为:

Select 客户名称,sum(销售总金额) as 本月销售额 ,sum(已收款) as 本月回款额,sum(期初欠款) as 期初欠款  ,sum(销售总金额)+sum(期初欠款)-sum(已收款)as 欠款额   FROM {收款明细} group by {收款明细}.客户名称

 

目前的问题是:

对表A新增一笔数据,或修改数据后,执行SQL语句结果无变化。

 

============用GroupTableBuilder统计===============================

Dim sql As String = "Select 客户名称,sum(销售总金额) as 本月销售额 ,sum(已收款) as 本月回款额,sum(期初欠款) as 期初欠款  ,sum(销售总金额)+sum(期初欠款)-sum(已收款)as 欠款额   FROM {收款明细} group by {收款明细}.客户名称"
Dim b As New GroupTableBuilder("统计表1",sql)
b.Groups.AddDef("客户名称")

b.Totals.AddDef("本月销售额")

b.Totals.AddDef("本月回款额")

b.Totals.AddDef("欠款额")

b.Build \'生成统计表
MainTable = Tables("统计表1") \'打开生成的统计表


--  作者:mr725
--  发布时间:2011/9/24 22:36:00
--  

跟表A有关系吗?


--  作者:zerohand
--  发布时间:2011/9/24 22:42:00
--  
没有关系,只是要实现按客户GROUP BY 统计,只要能实现统计即可。可目前尝试多种方法,统计的结果就是不能动态随表A的数据进行相应的变动
--  作者:mr725
--  发布时间:2011/9/24 22:43:00
--  

看不到你代码中有名为“表A”的表


--  作者:zerohand
--  发布时间:2011/9/24 23:27:00
--  
以下是引用mr725在2011-9-24 22:43:00的发言:

看不到你代码中有名为“表A”的表

详见附件

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


--  作者:mr725
--  发布时间:2011/9/24 23:38:00
--  
增加记录后要保存才行,不然后台数据还是原来的呀。
--  作者:czy
--  发布时间:2011/9/25 0:23:00
--  

这种统计还不如直接从菜单执行SQL查询表,再用Select语句输入代码:Select 客户名称,sum(销售总金额) as 本月销售额 ,sum(已收款) as 本月回款额,sum(期初欠款) as 期初欠款 ,sum(销售总金额)+sum(期初欠款)-sum(已收款)as 欠款额 FROM {收款明细} group by {收款明细}.客户名称

然后输入表名称。

窗口按钮代码只需:

DataTables("表A").Save
MainTable = Tables("统计表")

Syscmd.Table.Load()


--  作者:czy
--  发布时间:2011/9/25 0:25:00
--  

觉得老六应该给Syscmd.Table.Load()增加一个参数,比如

 

Syscmd.Table.Load(True) 有提示

Syscmd.Table.Load(false) 无提示


--  作者:狐狸爸爸
--  发布时间:2011/9/25 9:15:00
--  
呵呵,考虑一下
--  作者:don
--  发布时间:2011/9/25 9:42:00
--  
如不想时时保存表A,又想即时反映变化,这样:

Dim b As New GroupTableBuilder("统计",DataTables("表A"))
b.Groups.AddDef("客户名称") \'根据产品分组
b.Totals.AddDef("期初欠款") \'对数量进行统计
b.Totals.AddDef("销售总金额","本月销售额") \'对数量进行统计
b.Totals.AddDef("已收款","本月回款额") \'对数量进行统计
b.Filter ="客户名称 is not null"
b.Build \'生成统计表
Dim t As Table = Tables("统计")
t.DataTable.DataCols.add("欠款额",Gettype(Double),"ISNULL([期初欠款],0) + IsNull([本月销售额],0) - ISNULL([本月回款额],0)")
MainTable = t \'打开生成的统计表