因我没有表达清楚(原帖:http://club.excelhome.net/thread-887350-1-1.html),我想根据VBA代码中的SQL语名转为手工查询的方式,即通过新建查询获得一个新表,不用VBA的方式实现,不知如何修改语句.
*********************************************************************************
Sql = "select nb.系列,nb.品名,nb.主机厂,IIF(IsNull(qm),0,qm)+IIF(IsNull(yck),0,yck)-IIF(IsNull(yrk),0,yrk), yrk, yck, nrk, nck, " & _ "IIF(IsNull(qc),0,qc)+IIF(IsNull(nrk),0,nrk)-IIF(IsNull(nck),0,nck) as qm from " & _ "(select 系列,品名,主机厂,sum(IIF(IsNull(期初),0,期初)) as qc,sum(IIF(IsNull(入库),0,入库)) as nrk,sum(IIF(IsNull(出库),0,出库)) as nck " & _ "from [新台帐$] where month(月日) <= " & [D2] & _ " group by 系列,品名,主机厂) as nb " & _ "left join " & _ "(select 系列,品名,主机厂,sum(IIF(IsNull(入库),0,入库)) as yrk,sum(IIF(IsNull(出库),0,出库)) as yck " & _ "from [新台帐$] where month(月日) = " & [D2] & _ " group by 系列,品名,主机厂) as yb " & _ "on nb.系列=yb.系列 and nb.品名=yb.品名 and nb.主机厂=yb.主机厂" ****************************************************************************************************************** 对上述语名进行修改后(主要删除“”和&)如下,手工查询运行后有两个问题:1、期末和期初数不同。2、没有期初字段。 select nb.系列,nb.品名,nb.主机厂,IIF(IsNull(期末),0,期末)+IIF(IsNull(本月出库),0,本月出库)-IIF(IsNull(本月入库),0,本月入库), 本月入库, 本月出库, 本年入库, 本年出库, IIF(IsNull(期初),0,期初)+IIF(IsNull(本年入库),0,本年入库)-IIF(IsNull(本年出库),0,本年出库) as 期末 from (select 系列,品名,主机厂,sum(IIF(IsNull(期初),0,期初)) as 期初,sum(IIF(IsNull(入库),0,入库)) as 本年入库,sum(IIF(IsNull(出库),0,出库)) as 本年出库 from [新台帐$] where month(月日) <= "[B1]" group by 系列,品名,主机厂) as nb left join (select 系列,品名,主机厂,sum(IIF(IsNull(入库),0,入库)) as 本月入库,sum(IIF(IsNull(出库),0,出库)) as 本月出库 from [新台帐$] where month(月日) = "[B1]" group by 系列,品名,主机厂) as yb on nb.系列=yb.系列 and nb.品名=yb.品名 and nb.主机厂=yb.主机厂
特此发帖请教.谢谢
.
SQL查询修改.rar
(39.72 KB, 下载次数: 35)
该贴已经同步到 cnxwj的微博 |