ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: opiona

[分享] 在EXCEL中使用SQL语句查询集锦-持续更新中,敬请关注

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-22 13:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

SQL将几个条件组合一句中

本帖已被收录到知识树中,索引项:ADO技术
本帖最后由 opiona 于 2012-6-22 20:10 编辑

请求:用SQL语句写出,查找工作表《数据表》每个人分别合计金额大于2万而且日期应当至少有一笔是2012年的。每个人只要同时符合这2个条件,就把该人的所有记录显示到查找结果表中。
下面是 wudixin96 给出的答案:   
          巧妙地将几个条件组合在了一起,
          别名居然用到了三个(a/b/c),
          思路宽广,值得收藏!
  1. select a.* from [数据表$] a,(select 姓名 from [数据表$] group by 姓名 having sum(金额)>20000) b,(select distinct 姓名 from [数据表$] where year(日期)=2012) c where a.姓名=b.姓名 and b.姓名=c.姓名
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-6-22 14:10 | 显示全部楼层
详细好理解

TA的精华主题

TA的得分主题

发表于 2012-6-22 14:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-6-25 23:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-7-4 21:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-7-25 15:44 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-8-8 14:02 | 显示全部楼层

Imex参数,SQL查询数字和文本混排的数据

本帖最后由 opiona 于 2013-2-27 11:05 编辑

       '带参数的连接字符串:cnn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;IMEX=1';data source=" & ThisWorkbook.FullName
       '    IMEX 汇入模式  0 只读  1 只写   2 可读写
       '              当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。
       '              当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。
       '              当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。

当一列中数字和文本混排的时候,如:1、2、中国、12、联合国
如果省略:Imex参数,也就是Imex=0,可能会出错
原因是SQL要求一列中只能有一种类型
这时候加上:Imex=1  , SQL就会将全部数据当做文本来处理,因而不会出错。

但是有一个限制:
前此列的8行数据就要出现混合的形式,就是要有数值类型的,也要有文本类型的
如果此列的前8行数据都是数字,或者文本,8行以后才出现其他类型的
那么SQL就还是按照数字,或文本提取查询结果,就可能出错了!

以上是个人的理解,还望大家指正!
下面是达人的解释,更详细:http://www.cnblogs.com/xieyunc/archive/2012/10/21/2732846.html

根据网友提示,找到突破Imex=1时,8行的限制
附件是已经做好的Reg文件: SQL中突破Excel的Imex1为8的限制.rar (1.47 KB, 下载次数: 898)
想恢复,就将Reg文件中的:"TypeGuessRows"=dword:00000000 改成:"TypeGuessRows"=dword:00000008 即可



评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-8-14 09:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-14 09:55 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2012-8-18 10:53 | 显示全部楼层
哈哈,刚好我需要呢,今天就好好把它看完
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-27 05:46 , Processed in 0.046585 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表