Foxtable(狐表)用户栏目专家坐堂 → 多表汇总问题


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

主题:多表汇总问题

帅哥哟,离线,有人找我吗?
狐狸爸爸
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

呵呵,我佩服得五体投地啊,给精华。


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


加好友 发短信
等级:婴狐 帖子:21 积分:245 威望:0 精华:0 注册:2011/5/6 13:09:00
  发帖心情 Post By:2011/5/24 18:39:00 [只看该作者]

我自己也做了一个完全用SELECT 语句 跑出来的汇总,但是就是有些地方 不能归零显示,有点BUG看哪位能继续按照我现在上传的列子再做修改 达到SELECT 自动汇总效果?


图片点击可在新窗口打开查看此主题相关图片如下:图片说明1.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试表单.table

[此贴子已经被作者于2011-5-24 18:39:14编辑过]

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/24 18:46:00 [只看该作者]

Select语句只处理进货、销售单、退货数据。

库存部分用代码来增加表达式列计算,反正都是用前面的数据计算出来的。

设置表达式的时候留意:

http://help.foxtable.com/topics/0602.htm

 


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


加好友 发短信
等级:婴狐 帖子:65 积分:588 威望:0 精华:0 注册:2011/5/4 9:56:00
  发帖心情 Post By:2011/5/24 20:16:00 [只看该作者]

楼主利害!代码这么长怎样换行呀?

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


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

用狐表解决起来轻松的很,Select 里面太复杂了,看晕了····   24楼问如何换行,我试了一下,这样:

Dim fl As String = "Select {进货单}.型号,{进货单}.数量 As 进货_数量,"
fl = fl & "{进货单}.单价 As 进货_单价,{进货单}.单价 * {进货单}.数量 As 进货_金额,"
fl = fl & "{销售单}.数量 As 销售单_数量,{销售单}.售价/{销售单}.数量 As 销售单_均价,"
fl = fl & "{销售单}.售价 As 销售单_售价,{退货单}.数量 As 退货单_数量,{退货单}.单价 As 退货单_单价,"
fl = fl & "{进货单}.数量-{退货单}.数量-{销售单}.数量 As 库存_数量,{进货单}.单价 As 库存_单价,"
fl = fl & "({进货单}.数量-{退货单}.数量-{销售单}.数量)*{进货单}.单价 As 库存_金额 "
fl = fl & "from ((Select 型号,单价,sum(数量) As 数量 from {进货单}"
fl = fl & "group by 型号,单价) As {进货单} "
fl = fl & "left join (Select 型号,sum(数量) As 数量,sum(售价) As 售价 from {销售单} "
fl = fl & "group by 型号) As {销售单} on {销售单}.型号 = {进货单}.型号) "
fl = fl & "left join (Select 型号,SUM(数量) As 数量,单价 from {退货单} "
fl = fl & "group by 型号,单价) As {退货单} on {进货单}.型号 = {退货单}.型号 "
'fl = fl & "
DataTables("库存清单").Fill(fl,True)


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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/24 21:50:00 [只看该作者]

这个问题难住SQLGroupTableBuilder了,因为存在同名的列,否则统计起来挺轻松的,我改一下SQLGroupTableBuilder

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


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

同名列有些可以改名,入库数量、销售数量.....。但HGroups.AddDef 分组列最好能够取各表某列的不重复值。比如型号。有可能某型号的货末入库(或漏单)就有销售。

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


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

以下是引用zhaotao在2011-5-24 22:23:00的发言:
同名列有些可以改名,入库数量、销售数量.....。但HGroups.AddDef 分组列最好能够取各表某列的不重复值。比如型号。有可能某型号的货末入库(或漏单)就有销售。

有可能某型号的货末入库(或漏单)就有销售。 这个是管理的问题,应该先入库再销售的,如果是途中销售,也应入库出库一起办理手续。


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


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

以下是引用肖金亮在2011-5-24 18:39:00的发言:

我自己也做了一个完全用SELECT 语句 跑出来的汇总,但是就是有些地方 不能归零显示,有点BUG看哪位能继续按照我现在上传的列子再做修改 达到SELECT 自动汇总效果?


图片点击可在新窗口打开查看此主题相关图片如下:图片说明1.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:324.0 KB  下载次数:8]
图片点击可在新窗口打开查看点击浏览该文件:测试表单.table

[此贴子已经被作者于2011-5-24 18:39:14编辑过]

要显示“0”,应该这样吧: 比如,把 {退货单}.数量 As 退货单_数量 改为: iif({退货单}.数量 is null,0,{退货单}.数量) As 退货单_数量  。  所有类似的都要这样才行······


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


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

我有好办法,可以既不用SELECT语句,也可突破SQLGroupTablBuilder要求异名和一对多的限制,不用动脑,轻松解决,等我更新。
[此贴子已经被作者于2011-5-25 7:56:00编辑过]

 回到顶部
总数 39 上一页 1 2 3 4 下一页