|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
本帖最后由 bingoleexuben 于 2020-9-25 14:00 编辑
之前这个求助已解决! 我现在是想增加一个sheet,用附件的订单 减 完成 减 在生产,用SQL 出现了不想要有结果!变成了订单减完成,订单 减在生产。而没有同时减,有重复行了。
求高人帮我重改代码,做到正确的结果: 表格订单汇总后 减完成汇总 再减 在生产汇总。
已解决!!! 比VBA 字典好很多哇!!!!!!!
经过 自己的测试:代码如下 Private Sub CommandButton1_Click()
Dim conn As Object, sql$, Sh As Worksheet
Set Sh = Sheets("Sheet7")
Set conn = CreateObject("adodb.connection")
Sh.UsedRange.ClearContents '清除Sheet7工作表内容
'You use Excel 2007-2010
conn.Open "provider=Microsoft.ACE.OLEDB.12.0;extended properties='excel 12.0;hdr=yes';data source=" & ThisWorkbook.FullName
sql = ""
sql = sql & " Select T1.A1,T1.X,T2.Y+T3.Z,T1.X-T2.Y-T3.Z"
sql = sql & " FROM ((SELECT 花色 as A1,sum(重量) as X from [订单$a:e] GROUP BY 花色)T1 LEFT JOIN"
sql = sql & " (SELECT 花色 as B1,sum(重量) as Y from [完成$A:D] GROUP BY 花色)T2 ON T1.A1=T2.B1) LEFT JOIN"
sql = sql & " (SELECT 花色 as C1,sum(重量) as Z from [在生产$A:D] GROUP BY 花色)T3 ON T1.A1=T3.C1"
Sh.Range("A1:E1").Resize(, 4) = Array("花色", "订单重量", "完成重量", "欠数") '表头
Sh.Range("A2").CopyFromRecordset conn.Execute(sql) '结果比较
conn.Close
Set conn = Nothing
End Sub
|
|