ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于SQL在工作簿-工作表之间的查询、排序、转置(盖楼中....)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2012-4-23 17:19 | 显示全部楼层
学习{:soso_e100:}

TA的精华主题

TA的得分主题

发表于 2012-5-6 11:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
学习{:soso_e163:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-20 13:26 | 显示全部楼层

是代码问题,还是数据问题!为啥 不等于 时好时坏呢--(已解决)见38楼,感谢wuxiang_

本帖最后由 opiona 于 2012-7-22 11:37 编辑

  1. Dim StrSQL$, Cn As Object
  2. Set Cn = CreateObject("Adodb.Connection") '新建一个ADO连接
  3. t = Timer   '开始时间
  4. Cn.Open "provider=microsoft.jet.oledb.4.0;extended properties='excel 8.0;hdr=YES';data source=" & ThisWorkbook.FullName

  5. Set sh1 = Sheets("朝阳站")
  6. SQL1 = ""
  7. SQL1 = SQL1 + "SELECT 配送站点,format(导入时间,'yyyy-M-d') as 日期,金额,状态,最新异常信息"
  8. SQL1 = SQL1 + " FROM [汇递通信息$] WHERE 1=1"
  9. SQL1 = SQL1 + " and 状态<>'取消' "
  10. SQL1 = SQL1 + " and 最新异常信息<>'货已经退回当当库房'"
  11. '问题就在上一句上, 求:不为“货已经退回当当库房”的数据,含空白
  12. '为甚不等于在这里出错呢???
  13. '不注释掉,只能查到符合条件的此列非空行(此列为空的行我也要)
  14. '注释掉就OK, 此列全部就显示出来,包括:货已经退回当当库房
  15. '一定要加这个条件,但是不知道错在那里?
  16. '是代码问题? 还是数据问题?

  17. SQL1 = SQL1 + " and 客户名称 LIKE '" & sh1.Cells(2, 2) & "%'"
  18. SQL1 = SQL1 + " and 配送站点 LIKE '" & sh1.Name & "%'"
  19. SQL1 = SQL1 + " ORDER BY 最新异常信息 desc"
  20. MsgBox SQL1
  21. Sheets("查询结果").Range("A2:G65536").ClearContents
  22. Sheets("查询结果").Range("A2").CopyFromRecordset Cn.Execute(SQL1)      '在分表中指定位置粘贴数据集
  23. Sheets("查询结果").Select
  24. Cn.Close  '关闭ADO连接
复制代码

报表-2.1.rar (33.24 KB, 下载次数: 60)

群主帮助看看,是代码问题,还是数据问题!

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-21 17:01 | 显示全部楼层

RE: 期待高手和斑竹解决SQL条件的问题

那位大侠,帮忙看看上面的问题!

TA的精华主题

TA的得分主题

发表于 2012-6-21 17:09 | 显示全部楼层
Windows(ThisWorkbook.Name).Activate '回到操作主表界面

TA的精华主题

TA的得分主题

发表于 2012-6-21 18:05 | 显示全部楼层
bluexuemei 发表于 2012-2-29 22:03
赵版,前面为什么多了一个1?

因为编号同时作为行字段和列标题.利用NULL的特性修改即可.
  1. TRANSFORM sum([压实度(%)]) as YY  SELECT  NULL FROM [压实度$a3:j14] GROUP BY 0 PIVOT 编号
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-6-21 20:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
路过的大侠,给看看33楼的问题呗!
有点着急了!
困扰了3天!!
{:soso_e149:}

TA的精华主题

TA的得分主题

发表于 2012-6-22 10:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
opiona 发表于 2012-6-20 13:26
群主帮助看看,是代码问题,还是数据问题!
  1. SELECT 配送站点,format(导入时间,'yyyy-M-d') as 日期,金额,状态,最新异常信息 FROM [汇递通信息$] WHERE 1=1 and 状态<>'取消' and (最新异常信息<>'货已经退回当当库房' OR 最新异常信息 IS NULL) AND 客户名称 LIKE '当当%' AND 配送站点 LIKE '朝阳站%' ORDER BY 最新异常信息 DESC
复制代码
NULL表示未知值或结果未知,所以,无法判断NULL是否<>'货已经退回当当库房' ,故null不符合<>'货已经退回当当库房' 条件,使用OR加上最新异常信息为NULL即可.

评分

1

查看全部评分

TA的精华主题

TA的得分主题

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

有请版主和大侠们:SQL同一人名下,多行并一行--(已解决)见40楼,感谢wuxiang_123

本帖最后由 opiona 于 2012-7-22 11:36 编辑

源数据

源数据

效果图

效果图

Book2.rar (45.12 KB, 下载次数: 54)

TA的精华主题

TA的得分主题

发表于 2012-7-22 10:15 | 显示全部楼层
opiona 发表于 2012-7-22 00:59

按下面格式写,利用聚合函数忽略空值。
  1. select 编号,姓名,max([01日]) as [01日],……,MAX([31日]) AS [31日] FROM 表 GROUP BY 编号,姓名
复制代码

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 10:10 , Processed in 0.049474 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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