Foxtable(狐表)用户栏目专家坐堂 → 急!!!SQL查询表数据如何实现随表内容的更改及时动态更新


  共有12444人关注过本帖树形打印复制链接

主题:急!!!SQL查询表数据如何实现随表内容的更改及时动态更新

帅哥哟,离线,有人找我吗?
zerohand
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:295 威望:0 精华:0 注册:2011/9/6 11:19:00
急!!!SQL查询表数据如何实现随表内容的更改及时动态更新  发帖心情 Post By:2011/9/24 21:59:00 [只看该作者]

说明:

有一个表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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/24 22:36:00 [只看该作者]

跟表A有关系吗?


 回到顶部
帅哥哟,离线,有人找我吗?
zerohand
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:295 威望:0 精华:0 注册:2011/9/6 11:19:00
  发帖心情 Post By:2011/9/24 22:42:00 [只看该作者]

没有关系,只是要实现按客户GROUP BY 统计,只要能实现统计即可。可目前尝试多种方法,统计的结果就是不能动态随表A的数据进行相应的变动

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/24 22:43:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
zerohand
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:23 积分:295 威望:0 精华:0 注册:2011/9/6 11:19:00
  发帖心情 Post By:2011/9/24 23:27:00 [只看该作者]

以下是引用mr725在2011-9-24 22:43:00的发言:

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

详见附件

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


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/9/24 23:38:00 [只看该作者]

增加记录后要保存才行,不然后台数据还是原来的呀。

 回到顶部
帅哥哟,离线,有人找我吗?
czy
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章 三级勋章 二级勋章
等级:超级版主 帖子:6318 积分:33963 威望:0 精华:10 注册:2008/8/31 20:56:00
  发帖心情 Post By:2011/9/25 0:25:00 [只看该作者]

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

 

Syscmd.Table.Load(True) 有提示

Syscmd.Table.Load(false) 无提示


 回到顶部
帅哥,在线噢!
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/9/25 9:15:00 [只看该作者]

呵呵,考虑一下

 回到顶部
帅哥哟,离线,有人找我吗?
don
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1812 积分:12999 威望:0 精华:14 注册:2008/10/11 18:07:00
  发帖心情 Post By: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 '打开生成的统计表

 回到顶部
总数 11 1 2 下一页