sql查询当前月份_Vba实现查询在A表不在B表的内容

本文的目的是想讨论一下在vba用不同的方法实现查询在A表而不在B表的内容,以及比较各个方法的效率。主要涉及的方法是字典+数组,SQL语句中的notexists及left join.

运行环境:EXCEL版本Microsoft EXCEL 2016,win10 32位

文章涉及内容如下:

一、需求

二、实现思路

三、SQL语句

1.not exists 2.left join 3.not in

四、数组与字典

五、比较与总结

一、需求

这一次的内容来源于一个VBA群里面的一个提问,需求是在一份记录总表里面查询某个月的新增用户的手机号码。记录明细有两列,一列是时间,一列是手机号,原来数据是在数据库上的,为了提供测试数据源才转到EXCLE的。当时因为上班时间,也没细看,最近无聊的时候回想起这个,觉得有意思,又找出来学习下。

数据源只有2列,共14037行。

4822796ff261212f3202579fc4efc8e2.png

二、实现思路

实现这个需求的思路挺简单的,

1、  获取某月份所有出现的号码

2、  获取非该月份出现的号码

3、  判断在1结果又不在2结果中即想要得到的结果了。

这里以6月份为例子,用下面两种方法实现。

三、SQL语句

既然提问是用sql语句,我们这里也先讨论这个。(本文不涉及sql语句基础,只是稍微提及涉及的知识点)

实现步骤1,2的语句分别如下。

strSQL1 = "select distinct 手机号 from [记录明细$] where 结束时间 >= #" & t1 &"# and 结束时间< #" & t2 &"#"

strSQL2 = "select distinct 手机号 from [记录明细$] where 结束时间

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值