|
本问题简化后的例子见 http://club.excelhome.net/thread-454816-1-1.html
参见如下语句
sql1 = "select A.名称,A.规格,A.单位,B.单价 as 采购单价,sum(iif(B.数量 is null,0,B.数量)) as 采购数量,sum(iif(B.小计 is null,0,B.小计)) as 采购金额 from [物资$] as A left join [采购$] as B on A.名称=B.名称 and A.单位=B.单位 and A.规格=B.规格 group by A.名称,A.单位,A.规格,B.单价"
'选出发运数量
sql2 = "select A.名称,A.规格,A.单位,sum(iif(B.数量 is null,0,B.数量)) as 发运数量,sum(iif(B.小计 is null,0,B.小计)) as 发运金额 from [物资$] as A left join [运输$] as B on A.名称=B.名称 and A.单位=B.单位 and A.规格=B.规格 group by A.名称,A.单位,A.规格"
'选出库存数量
Sql = "select AA.名称,AA.规格,AA.单位,AA.采购单价,AA.采购数量,AA.采购金额,BB.发运数量,BB.发运金额,(AA.采购数量-BB.发运数量) as 库存,(AA.采购金额-BB.发运金额) as 库存金额 from (" & sql1 & ") as AA,(" & sql2 & ") as BB where AA.名称=BB.名称 and AA.规格=BB.规格 and AA.单位=BB.单位"
上句红色部分如果把如果AA.规格=BB.规格,和AA.名称=BB.名称 不同时出现,可以组合出不同的结果;
但是如果AA.规格=BB.规格,和AA.名称=BB.名称 同时出现 程序运行为空记录;
请指点原因!
具体参见附件中的VBA说明!
[ 本帖最后由 lgqhawk 于 2009-7-2 20:49 编辑 ] |
|