Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
123
返回列表 发新帖
楼主: mxg825

[已解决]请帮我写个SQL 语句,送金币20个(又不行了)

[复制链接]
发表于 2008-10-15 18:26 | 显示全部楼层

也发上来放到这里吧,便于学习

请帮我写个SQL 语句,送金币20个(又不行了)

请帮我写个SQL 语句,送金币20个(又不行了)
Sub test()
Dim cnn As Object
Dim sql$
Set cnn = CreateObject("adodb.connection")
cnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties= Excel 8.0;Data Source=" & ThisWorkbook.FullName
sql = "select iif(InStr(品种,'退')>0,left(品种,len(品种)-1),品种),max(单价),sum(数量),sum(金额)  from [sheet1$a1:d9] GROUP BY iif(InStr(品种,'退')>0,left(品种,len(品种)-1),品种)"
Range("f2").CopyFromRecordset cnn.Execute(sql)
Set cnn = Nothing
End Sub

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

发表于 2008-10-15 19:34 | 显示全部楼层

 如果他的字段都是6位,加个 "退" 字 的7位的话,还可以简化

 Sql = " select left(进货单号,6) ,SUM(进货数量),进货单价,SUM(金额) from [Sheet1$] group by left(进货单号,6),进货单价 "

 

查询的再简化改成这样

Sql = " select a.进货单号 ,iif(isnull(b.付款金额),a.金额,b.付款金额),iif(isnull(b.付款方式),null,'已付') " _
              & " from (select left(进货单号,6) as 进货单号,SUM(金额) as 金额 from [Sheet1$] group by  " _
              & " left(进货单号,6)) a left join [Sheet1$f1:h3] b on a.进货单号=b.进货单号 "

 

不过,不看不看的代码通用性最好,一般就是这么用的

[此贴子已经被作者于2008-10-15 20:40:35编辑过]
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-23 20:47 , Processed in 0.390012 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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