Countif 和 Sumif 作为 Access 中 SQL Select 查询的一部分

Countif and Sumif as Part of an SQL Select Query in Access

我的任务是创建一个 Access 数据库来处理拖欠税款数据。如果我在 Excel 中工作,我确切地知道如何使用我的 Table1(下方)创建我的 FinalTable(也在下方),但 Access 没有相同的 countifsumif 函数,据我所知,不允许您在查询中 引用其他列 ,现在我被卡住了.这是我的数据集的简化版本。

表 1

FY Parcel Delinquent_1 Delinquent_2 Delinquent_Sum
2020 1-19A 0.00 0.00 00.00
2020 1-20-2 [=13=].00 0.00 0.00
2021 1-20-2 0.00 0.00 00.00
2022 1-20-2 0.00 0.00 00.00
2022 1-20-5 [=13=].00 [=13=].00 [=13=].00

我需要编写某种查询才能获得以下结果。

决赛桌

Year NumDelinqParcels TotalDelinquent1 TotalDelinquent2 TotalUnpaid
2020 2 0.00 00.00 00.00
2021 1 0.00 0.00 00.00
2022 1 0.00 0.00 00.00

要提供更多详细信息,NumDelinqParcels 应显示给定年份 Delinquent_Sum > 0.00 美元的地块数量。 TotalDelinquent1 将添加给定年份的 Delinquent_1 列。 TotalDelinquent2 将添加给定年份的 Delinquent_2 列。 TotalUnpaid 将汇总 TotalDelinquent1 和 TotalDelinquent2。

如果我在 Excel 工作,我的 NumDelinqParcels 可以用 countif 语句填充,我的 TotalDelinquent1 和 TotalDelinquent2 可以用 sumif 语句填充。我无法让这些在 Access 中工作。

对于 TotalDelinquent1,我可以达到:

子查询 1

SELECT Sum(Iif(FY = "2020" and Delinquent_Sum <> 0, Delinquent_1, 0)) from Table1

然后我可以把它变成像 SELECT FY 作为“Year”,Subquery1 作为“TotalDelinquent1”等等 我的最终 table。

Subquery1 的问题在于它是静态的。我无法只查看第一列中的年份并将其填写为“FY =”部分。也许我走错了方向。

非常感谢任何建议!

对我来说看起来像是一个简单的聚合 (GROUP BY) 查询。

Delinquent_Sum不应该是table中的字段,应该是查询时计算出来的。如果要按 FY 动态过滤,请使用 WHERE 子句。下面演示了带有 FY 弹出输入提示的查询。我不使用弹出提示。我更喜欢使用 VBA 来构建过滤条件并在打开时应用于表单或报告。

SELECT FY, Count(*) AS NumDelinqParcels, Sum(Delinquent_1) AS TotalDelinq1, 
       Sum(Delinquent_2) AS TotalDelinq2, Sum(Delinquent_1 + Deliinquent_2) AS TotalUnpaid
FROM Table1
WHERE FY=[enter year]
GROUP BY FY;