MS Access多表查询求助:日销售与周期初库存匹配显示问题
Access多表查询解决方案:显示全部日销数据+对应周期初库存
核心问题原因
你之前的查询用了内连接,只会返回两张表中Item Code和Date完全匹配的记录,所以只显示了有库存数据的周度日期。要保留所有日销数据,得改成左连接,再处理日期的周匹配逻辑。
具体操作步骤
1. 切换到查询设计视图,设置左连接
- 打开查询设计视图,添加EPOS和MATERIAL两张表。
- 点击两张表之间的连接线,弹出连接属性窗口。
- 选择第2个选项:
包含"EPOS"中的所有记录,以及"MATERIAL"中联接字段相等的那些记录,点击确定。
2. 配置日期匹配逻辑(关联日销日期到对应周的期初库存)
因为MATERIAL是周度期初数据,需要把EPOS的每日日期映射到所在周的库存记录日期:
- 在查询设计的「字段」行,新增一个计算字段(替换成你实际的日期字段名):
注:周起始日期: DateSerial(Year([EPOS].[Date]), Month([EPOS].[Date]), Day([EPOS].[Date]) - Weekday([EPOS].[Date], 2) + 1)Weekday([Date],2)表示把周一作为每周第一天,如果你的周起始是周日,把2改成1。 - 将这个「周起始日期」字段和MATERIAL表的
Date字段建立连接,同时保留Item Code的连接。
3. 配置筛选和显示字段
- 在EPOS表的
Item Code字段的「准则」行,输入你要筛选的代码(比如"ABC123"),或者留空,运行查询时会弹出输入框让你指定。 - 勾选你需要显示的字段:EPOS的Date、Item Code、Sales,以及MATERIAL的Opening Stock。
4. 运行查询验证效果
现在运行查询,就能看到所有日度销售数据,对应周有期初库存的会显示数值,没有的则显示空值,完全符合你的需求。
内容的提问来源于stack exchange,提问作者SeekingAssistance97
相关产品推荐
相关产品推荐

