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

如何用MS Access查询汇总发票数据:合并PO号与金额至单行

问题解决:Access查询中PO Number为NULL导致多行汇总的处理

问题原因

你的查询将[PO Number]纳入了GROUP BY子句,但同一张发票的明细行里,PO Number存在非空值(456)和NULL两种情况,Access会把这两类行拆分成两个独立分组,所以生成了两行结果。

解决方案

不要将[PO Number]放在GROUP BY中,改用Max()聚合函数提取该发票对应的非空PO Number(因为同一张发票的PO Number应该唯一,Max()会自动忽略NULL,返回有效数值),同时修正FORMAT$函数的括号错误。

修改后的查询代码

SELECT  
    [Invoice Date],
    [Invoice #],
    Max([PO Number]) AS [PO Number],
    FORMAT$(Sum([Amount]),'$#,##0.00') AS [Amount]
FROM [Invoice Details]
GROUP BY 
    [Invoice Date],
    [Invoice #]
HAVING 
    [INVOICE DATE] BETWEEN #8/11/2022# AND #8/11/2022#
ORDER BY 
    [INVOICE #]

额外说明

  • Access中日期常量建议用#包裹,而非方括号,方括号通常用于字段或参数名,可避免歧义
  • 如果发票PO Number存在多个不同值(不符合常规业务逻辑),可根据实际需求改用First()等其他聚合函数,但Max()在仅存在一个非空值时最适用

内容的提问来源于stack exchange,提问作者ChesChang34

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 04:36:17