以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]combine的问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=120672) |
||||
-- 作者:chnfo -- 发布时间:2018/6/21 16:50:00 -- [求助]combine的问题 Dim bd1 As New
SQLGroupTableBuilder("统计表1","进货单") bd1.filter = "月份=201801“ ‘只统计2018年1月的单子 bd2.filter = 月份=201801" dt1.Combine("型号",dt2,"型号") \'将销售统计数据组合到进货统计数据 dt1.Combine("型号",dt3,"型号") \'将退货统计数据组合到进货统计数据 问题是:bd1中假设有100种商品,但bd2中可能有120种。 如何只出现bd1中的100种商品? [此贴子已经被作者于2018/6/21 16:50:04编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/21 17:03:00 -- 方法一:用sql语句处理 inner join 或者 left join
方法二:在你得到的结果后,进行一下筛选,设置统计表1的 型号 in (表A的型号) |
||||
-- 作者:chnfo -- 发布时间:2018/6/21 17:04:00 -- 1、SQL当然好了 2、数据量大的情况下,用in的效率实在是不行呀
[此贴子已经被作者于2018/6/21 17:04:59编辑过]
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/21 17:34:00 -- 那就自己写sql语句实现功能呗,你是不会写还是怎样?只有这种方法效率最高。 |
||||
-- 作者:chnfo -- 发布时间:2018/6/21 17:41:00 -- SQL倒是可以,ACCESS可以自己生成的。直接在ACCESS中拖拉即可。 但是有些功能,依赖SQL效率不高啊。比如数据量大,而且要用like的话,那还真是不行。
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/21 17:47:00 -- 1、SQLGroupTableBuilder也是动态合成sql语句执行而已,和你自己写sql语句没有什么区别。
2、sql效率是否高,取决于你对语句的优化,以及,你数据库表结构的优化。 |
||||
-- 作者:有点甜 -- 发布时间:2018/6/21 17:48:00 -- 既然like效率不高,那就想办法不要用like,绕开它。 |
||||
-- 作者:chnfo -- 发布时间:2018/6/21 18:05:00 -- http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=120462 这个帖子里,使用like去找上级节点直至顶级,数据量小的时候,速度很快,但是如果WL表的数据行数达到几千行的时候,执行就会其慢无比。
|
||||
-- 作者:有点甜 -- 发布时间:2018/6/21 18:23:00 -- 效率低的例子做一个发上来测试。
|
||||
-- 作者:chnfo -- 发布时间:2018/6/22 0:10:00 -- 本来数据比这个多,截掉了一部分
|