ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论][分享]SQL接龙(figfig,烟雨,ldy,sgrshh29等完成)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-9-2 11:24 | 显示全部楼层
本帖已被收录到知识树中,索引项:SQL应用
QUOTE:
以下是引用sgrshh29在2008-9-2 11:17:28的发言:
第一个问题,如果不用辅助表,就做成交叉表形式
楼上的兄弟,能不能做个附件发上来学习一下

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-9-2 11:36 | 显示全部楼层

比如 1,2,5,6,7,9,10,11,13,15,15,16,17,18

上面这一句里  连在一起达到或超过3个的是  5,6,7,9,10,11,15,15,16,17,18

TA的精华主题

TA的得分主题

发表于 2008-9-2 11:54 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
QUOTE:
以下是引用office2008在2008-9-2 11:36:11的发言:

比如 1,2,5,6,7,9,10,11,13,15,15,16,17,18

上面这一句里  连在一起达到或超过3个的是  5,6,7,9,10,11,15,15,16,17,18

比较难.请问一下,如果同一天有多个,比如1,2,2,2 不能算是连续的吗?

TA的精华主题

TA的得分主题

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

同一天 1,2,2,2,2 假如后面没 3 那么 不符合(不是3条,而是连着3天)

1,2,2,2,3,5,6 那么1,2,2,2,3符合

TA的精华主题

TA的得分主题

发表于 2008-9-2 13:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用烟雨厦江南在2008-9-2 11:24:29的发言:
楼上的兄弟,能不能做个附件发上来学习一下

Sub fig()
 Dim arr()
 
 With Worksheets("空缺记录")
   Set CNN = CreateObject("adodb.connection")
    CNN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=yes;';Data Source=" & ThisWorkbook.FullName
     .Range("d2:e1000").ClearContents
     r = .Range("a65536").End(xlUp).Row
      For i = 12 To 18
      j = j + 1
      ReDim Preserve arr(1 To j)
      arr(j) = "select " & i & " as vv from [空缺记录$a1:b10] "
            Next
            Sql = Join(arr, " union ")
           ' MsgBox Sql
     
     
     
      Sql = "select distinct aa.name,bb.vv from [空缺记录$a1:b10]  aa ,(" & Sql & ")   bb where   len(aa.name)>0 and aa.name&bb.vv  not in (select name&id from [空缺记录$a1:b10] where id>0) "
     .Range("d2").CopyFromRecordset CNN.Execute(Sql)
End With
End Sub

[此贴子已经被作者于2008-9-2 13:14:00编辑过]

TA的精华主题

TA的得分主题

发表于 2008-9-2 13:22 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-9-2 13:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢 figfig大师,真神了

[em17][em17][em17]

同样谢谢烟雨厦江南的代码,思路也不错.

TA的精华主题

TA的得分主题

发表于 2008-9-2 14:06 | 显示全部楼层
QUOTE:

      arr(j) = "select " & i & " as vv from [空缺记录$a1:b10] "


原来还可以这样[em17]:

        For i = 12 To 18
            j = j + 1
            ReDim Preserve arr(1 To j)
            arr(j) = "select distinct 'AA' as name," & i & " as id from [空缺记录$a1:b10] union select distinct 'BB' as name," & i & " as id from [空缺记录$a1:b10] "
        Next
        Sql = Join(arr, " union ")

这样就可以通过代码在内存中拼凑出辅助表。

佩服啊!

TA的精华主题

TA的得分主题

发表于 2008-9-2 14:25 | 显示全部楼层
其实这个与  http://club.excelhome.net/viewthread.php?tid=350339&px=0  有共同之处。创建一个  临时表,然后再用  select * from [临时表] where len(科目代码)>0 作最后的查询。

TA的精华主题

TA的得分主题

发表于 2008-9-2 14:40 | 显示全部楼层
QUOTE:
以下是引用烟雨厦江南在2008-9-2 10:39:11的发言:

第二个问题,代码如下:

Sub yy2()
    With Worksheets("5月6月工资")
        Set CNN = CreateObject("adodb.connection")
        CNN.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties='Excel 8.0;hdr=yes;';Data Source=" & ThisWorkbook.FullName
        .Range("e2:g100").ClearContents
        Sql = "select date,name,salary  from [5月6月工资$] where date between 200805 and 200806 "
        Sql = "select * from (" & Sql & ") where name not in (select name from (" & Sql & ") group by name,salary having count(name)>1)"
        .Range("e2").CopyFromRecordset CNN.Execute(Sql)
    End With
End Sub

   

  1. Sql = "select * from (" & Sql & ") where name not in (select name from (" & Sql & ") group by name,salary having count(name)>1)"
复制代码

这是不是就是SQL嵌套啊?

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

本版积分规则

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

GMT+8, 2024-12-12 07:56 , Processed in 0.043073 second(s), 5 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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