admin

如何在Access中使用固定数量的列进行交叉表查询

sql

我想使用MS Access交叉表查询提取数据,以便将其绑定到报表。加载页面时,出现运行时错误“ 3637”:无法将非固定列的交叉表用作子查询。

我想要一种在运行查询时返回固定网格的方法,如果单元格为空,则显示零。


阅读 148

收藏
2021-06-07

共1个答案

admin

子查询?这是我在Access方面的弱点之一,因此我在这里无法为您提供帮助。我建议尽管发布查询的SQL,以便其他人可以看一下。另外,当您运行查询时会发生什么?

以下是我用于给定单位最近十年的费用查询。将Sum(ServiceRecords.srTotalCost)转换为AnnualCost SELECT
ServiceRecords.srEquipmentID来自ServiceRecords GROUP BY
ServiceRecords.srEquipmentID PIVOT“ C”和DateDiff(“
yyyy”,[srServiceDate],Date())在(“ C9”,“ C8”,“ C7”,“ C6”,“ C5”,“ C4”,“ C3”,“
C2”,“ C1”,“ C0”));

诀窍是在PIVOT之后。因为我想要最近十年的数据,所以“
C”和DateDiff部分设置了一个字符串变量调用C0到C9。“输入”后面的部分告诉您将内容填充到哪一列。

另一个提取有关设备数据的查询称为该查询。我们通常用于此类的术语是堆叠查询。

如果这还不足以帮助您继续前进,请指出您要创建交叉表的数据类型。

资深访问MVP,艾伦·布朗(Allen Browne)在这个主题上有一个不错的页面。
交叉表查询技术

2021-06-07