|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
本帖最后由 handsomcao 于 2015-4-10 19:01 编辑
SQL层层左联接,为什么数据不能相加减
- Sub 汇总2()
- Dim cnn As Object, rs As Object, SQL$
- Set cnn = CreateObject("Adodb.Connection")
- Set rs = CreateObject("Adodb.Recordset")
- cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & ActiveWorkbook.FullName
-
-
- SQL1 = "select '入库' as 单据类型,品号,辅助列,物料名称,规格型号,单位,数量,仓库 from [入帐$a:k] where 品号 is not null"
- SQL2 = "select '出库' as 单据类型,品号,辅助列,物料名称,规格型号,单位,数量,仓库 from [出帐$a:k] where 品号 is not null"
- SQL3 = "select 单据类型,辅助列,物料名称,规格型号,单位,sum(数量) as 不合入 from (" & SQL1 & ") where 仓库 = '不合格品仓' group by 单据类型,辅助列,物料名称,规格型号,单位"
- SQL4 = "select 单据类型,辅助列,物料名称,规格型号,单位,sum(数量) as 不合出 from (" & SQL2 & ") where 仓库 = '不合格品仓' group by 单据类型,辅助列,物料名称,规格型号,单位"
- SQL5 = "select 单据类型,辅助列,物料名称,规格型号,单位,sum(数量) as 良品入 from (" & SQL1 & ") where 仓库 = '配件仓' group by 单据类型,辅助列,物料名称,规格型号,单位"
- SQL6 = "select 单据类型,辅助列,物料名称,规格型号,单位,sum(数量) as 良品出 from (" & SQL2 & ") where 仓库 = '配件仓' group by 单据类型,辅助列,物料名称,规格型号,单位"
-
- SQL7 = "select a.辅助列,a.物料名称,a.规格型号,a.单位,a.期初,b.不合入 from [物料表$a:k]a left join (" & SQL3 & ")b on a.辅助列=b.辅助列"
- SQL8 = "select a.辅助列,a.物料名称,a.规格型号,a.单位,a.期初,a.不合入,b.不合出 from (" & SQL7 & ")a left join (" & SQL4 & ")b on a.辅助列=b.辅助列"
- SQL9 = "select a.辅助列,a.物料名称,a.规格型号,a.单位,a.期初,a.不合入,a.不合出,b.良品入 from (" & SQL8 & ")a left join (" & SQL5 & ")b on a.辅助列=b.辅助列"
- SQL10 = "select a.辅助列,a.物料名称,a.规格型号,a.单位,a.期初,a.良品入,b.良品出,a.不合入,a.不合出 from (" & SQL9 & ")a left join (" & SQL6 & ")b on a.辅助列=b.辅助列"
- SQL = "select 辅助列,物料名称,规格型号,单位,期初,良品入,良品出,不合入,不合出,([期初] + 良品入 - 良品出) as 结存 from (" & SQL10 & ")"
-
-
- rs.Open SQL, cnn, 1, 3
- Range("a2:j10000").ClearContents
- Range("a2").CopyFromRecordset rs
- rs.Close
- cnn.Close
- Set rs = Nothing
- Set cnn = Nothing
- End Sub
复制代码
总帐.rar
(365.94 KB, 下载次数: 11)
|
|