You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在MS Access表中插入所有区县各月份的缺失犯罪统计记录

Access 全量区县-月份犯罪记录补全方案

你之前一对多连表无法得到预期216条记录的核心原因是:缺少存储全量统计周期月份的独立维度表,直接关联Counties和现有Crimes表时,只能匹配到Crimes里已经存在数据的月份,无法生成无犯罪记录的月份条目。按以下步骤操作即可实现需求:

  • 第一步:创建全量月份维度表
    新建名为Months的表,仅添加1个短日期类型字段Month_Start,手动录入统计周期内所有月份的首日值(比如2021/6/1、2021/7/1……直到周期最后一个月的首日),总共12条记录,确保无重复值。
  • 第二步:生成区县-月份全量组合骨架
    新建选择查询,添加Counties和Months两张表,不要给两张表建立任何连接关系,选中Counties表的County字段、Months表的Month_Start字段,运行查询即可得到18*12=216条全量组合记录,这就是最终需要的完整数据骨架。
  • 第三步:关联Crimes表补全犯罪数值
    在上述查询的设计界面继续添加Crimes表,建立两个连接关系:
    1. 将查询中的County字段拖动到Crimes表的County字段上
    2. 将查询中的Month_Start字段拖动到Crimes表的Date_字段上
      分别双击两条连接连线,选择连接属性为「保留Counties+Months组合查询的所有记录,仅匹配Crimes表中连接字段相等的记录」(即左外连接模式),确保216条骨架记录不会丢失。
      将Num_Crimes字段的查询表达式修改为:
    Crime_Num: IIf(IsNull([Crimes].[Num_Crimes]),0,[Crimes].[Num_Crimes])
    
    运行查询后,无对应犯罪记录的条目会自动填充默认值0。
  • 第四步:追加数据到正式Crimes表(可选)
    如果需要把生成的全量数据写入原Crimes表,直接将上述查询改为追加查询,选择追加目标为Crimes表,做好字段映射:
    • 自增主键ID无需手动赋值,Access会自动生成
    • Date_字段映射查询中的Month_Start
    • County字段映射查询中的County
    • Num_Crimes字段映射上述写好的带0默认值的计算字段
      运行追加查询即可补全所有缺失记录,最终表内正好为216条符合要求的数据。

注意:不要跳过创建Months表的步骤,Access的JOIN逻辑无法凭空生成不存在的月份值,必须先有全量的月份维度作为组合基础,才能得到完整的笛卡尔积结果。

内容的提问来源于stack exchange,提问作者Jim W.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 05:12:35