运用access database处理大批量的仿真结果数据

上一次将meplan中的run_all_year的batch文件运行完了,在RUN_LU中产生了LAZ文件,非常庞大,不能直接用excel来进行分析。分析原因,无非是交通小区划分的太精细,实际分析我们是根据land use zone的,所以集计的过程大致可以表现为:


导入LAZ文件 --> 使用查询语句对其数据进行分类提取 --> 输出表格


其中调用Import_RunQuery_Export


'------------------------------------------------------------
' Import_RunQuery_Export
'
'------------------------------------------------------------
Function Import_RunQuery_Export()
On Error GoTo Import_RunQuery_Export_Err

    DoCmd.SetWarnings False
    Call ImportTable("LAZ1")
    DoCmd.OpenQuery "LAZ_Aggregation - hard coded agg table", acViewNormal, acEdit
    Call ExportTable("LAZ_Ag_Output")


Import_RunQuery_Export_Exit:
    Exit Function

Import_RunQuery_Export_Err:
    MsgBox Error$
    Resume Import_RunQuery_Export_Exit

End Function

sql 语句:

SELECT LAZ1.Fact, [LKP_LU zone aggregation Training].[AG ZONE], [LKP_LU zone aggregation Training].[agzn name], Sum(LAZ1.[TotProd#]) AS TotProd, Sum(LAZ1!ConsCost*LAZ1![TotProd#]) AS TotConsCost INTO LAZ_Ag_Output
FROM Tbl_Agg_Factors INNER JOIN ([LKP_LU zone aggregation Training] INNER JOIN LAZ1 ON [LKP_LU zone aggregation Training].[LU ZONE] = LAZ1.Zone) ON Tbl_Agg_Factors.FACTOR = LAZ1.Fact
GROUP BY LAZ1.Fact, [LKP_LU zone aggregation Training].[AG ZONE],[LKP_LU zone aggregation Training].[agzn name];

其中,inner join(等值连接) 只返回两个表中联结字段相等的行

group by 作用是通过一定的规则将一个数据集划分成若干个小的区域,然后针对若干个小区域进行数据处理。需要注意的一点,如果在返回集字段中,这些字段要么就要包含在Group By语句的后面,作为分组的依据;要么就要被包含在聚合函数中。

Into 后面直接是输出的表格

08.21

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值