以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 关于多表查询和 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=106328) |
||||
-- 作者:stevenfm -- 发布时间:2017/9/6 18:10:00 -- 关于多表查询和 比如: Dim jb As New
SQLJoinTableBuilder("查询表1","订单") jb.AddExp("库存","库存") 我想知道,如果我库存里面有一个商品库存是“空值”不是0. 是不是最后就没办法汇总单品的“库存量”和“金额”了。我只是用了一张大家熟悉的表,修改了一下。 另外,我自己做的表有差不多7、8万的数据。发现做这种多表查询后,会卡一会,有什么办法解决嘛 ?(只要做过了,后面做任何操作都会卡一下) |
||||
-- 作者:有点甜 -- 发布时间:2017/9/6 19:34:00 -- 1、可以判断,如果为空,就设置成0
如 jb.AddExp("金额","isnull(数量,0) * isnull(单价,0)") 或者 jb.AddExp("金额","iif(数量 is null,0, 数量) * iif(单价 is null,0,单价)")
2、不可能一直卡的,卡也是你运行代码的时候才会卡,你一直运行么? |
||||
-- 作者:stevenfm -- 发布时间:2017/9/7 14:08:00 -- AfterOpenProject里面加入这个了。虽然我看例子只要加载一个。 Forms("海报档期录入").open() MainTable = Tables("海报档期基本信息表") \'Forms("整体销售录入")open() MainTable = Tables("整体销售表") \'Forms("海报清单录入")open() MainTable = Tables("海报清单表") \'Forms("海报预估录入")open() MainTable = Tables("海报预估销售表") MainTableChanging里面加入这个 Select Case e.NewTableName Case "海报档期基本信息表" Forms("海报档期录入").Open() Case "整体销售表" Forms("整体销售录入").Open() Case "海报清单表" Forms("海报清单录入").Open() Case "海报预估销售表" Forms("海报预估录入").open() End Select 是不是因为AfterOpenProject加载的关系嘛?但我不加感觉下面这MainTableChanging有的时候会点失效,要每个点一下才正常。
|
||||
-- 作者:stevenfm -- 发布时间:2017/9/7 14:40:00 -- 只是想把档期的编号汇总到一个表里做个统计。 根据“海报档期号”关联表。 现在我统计出来的额度不对。每个档期号里面有很多商品。统计了一下销售额和我汇总的数额翻倍还对不起来。不知道为什么。 ‘预估销售里面可能不是每个档期都有预估销售。现在统计出来只有预估表有的才能统计销售。我把 “jb.AddTable("海报清单表","海报档期号","海报预估销售表","海报档期号")”去掉。数据是对的。但是想统计一下预估销售就不对了。 预估销售表中也是一个档期号对应好几个部门的销售预估。也是需要sum统计的。 功能就只是想统计一个档期号的总销售和总预估 Dim jb As New SQLJoinTableBuilder("档期汇总","海报清单表") jb.C jb.AddTable("海报清单表","海报档期号","海报档期基本信息表","海报档期号") jb.AddTable("海报清单表","海报档期号","海报预估销售表","海报档期号") \'jb.AddTable("海报清单表","海报档期号","整体销售表","海报档期号") jb.AddCols("{海报清单表}.海报档期号","海报主题",True) jb.AddExp("目标销售","Sum(isnull(目标销售,0))") \'这个语法错误了嘛?不能通过。 jb.AddExp("销售额","Sum(销售额 / 10000)") jb.Build() MainTable = Tables("档期汇总") |
||||
-- 作者:有点甜 -- 发布时间:2017/9/7 14:46:00 -- 做一个例子发上来说明具体问题。 |
||||
-- 作者:stevenfm -- 发布时间:2017/9/7 16:29:00 -- Dim jb As New SQLJoinTableBuilder("档期汇总","海报清单表") jb.AddTable("海报清单表","海报档期号","海报档期基本信息表","海报档期号") jb.AddTable("海报清单表","海报档期号","海报预估销售表","海报档期号") jb.AddCols("{海报清单表}.海报档期号","海报主题",True) jb.AddExp("目标销售","Sum(目标销售)") jb.AddExp("销售额","Sum(销售额 / 10000)") jb.Build() MainTable = Tables("档期汇总") * 标注黄色去掉是没有问题的。现在加上是想统计目标销售(只不过这个目标销售在目标销售表中无,能否显示为0呢?) 生成这个表后,原来加载的窗口会有点失效。 密码是默认密码,请老师指点。数据只是练习数据
。 |
||||
-- 作者:有点甜 -- 发布时间:2017/9/7 17:23:00 -- Dim b As New SQLGroupTableBuilder("统计表1","海报清单表") b = New SQLGroupTableBuilder("统计表2","海报预估销售表") dt1.Combine("海报档期号",dt2,"海报档期号") dt1.show("测试") |
||||
-- 作者:stevenfm -- 发布时间:2017/9/8 10:27:00 -- Dim b As New SQLGroupTableBuilder("统计表1","海报清单表") b.C b.AddTable("海报清单表","海报档期号","海报档期基本信息表","海报档期号") b.Groups.AddDef("{海报清单表}.海报档期号","海报档期号") b.Groups.AddDef("{海报档期基本信息表}.海报主题","海报主题") b.Totals.AddExp("销售额","销售额 / 10000") Dim dt1 As fxDataSource dt1 = b.BuildDataSource() Dim c As New SQLGroupTableBuilder("统计表2","海报预估销售表") c.C \'b = New SQLGroupTableBuilder("统计表2","海报预估销售表") c.AddTable("海报预估销售表","海报档期号","海报档期基本信息表","海报档期号") c.Groups.AddDef("{海报预估销售表}.海报档期号","海报档期号") \'b.Groups.AddDef("{海报档期基本信息表}.海报主题","海报主题") c.Totals.AddExp("目标销售","目标销售") Dim dt2 As fxDataSource dt2 = c.BuildDataSource() dt1.Combine("海报档期号",dt2,"海报档期号") dt1.show("档期汇总") MainTable = Tables("档期汇总") 谢谢甜老师,可以了,后面的我自己在试试。
|