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

时间:2009-06-02 03:25:51

标签: sql ms-access crosstab

我想使用MS Access交叉表查询提取数据,以便将其绑定到报表。当我加载页面时,我得到一个运行时错误'3637':不能使用非固定列的交叉表作为子查询。

我想在运行查询时找回固定网格,如果单元格为空则显示零。

1 个答案:

答案 0 :(得分:1)

子查询?这是我在Access方面的弱点之一,所以我无法帮助你。我建议发布查询的SQL,以便其他人可以看看。运行查询时会发生什么?

以下是我用来向我提供给定单位过去十年的费用的查询。 TRANSFORM Sum(ServiceRecords.srTotalCost)AS AnnualCost SELECT ServiceRecords.srEquipmentID 来自ServiceRecords GROUP BY ServiceRecords.srEquipmentID PIVOT“C”& DateDiff(“yyyy”,[srServiceDate],Date())In(“C9”,“C8”,“C7”,“C6”,“C5”,“C4”,“C3”,“C2”,“C1” ”, “C0”);

诀窍是在PIVOT之后。正如我想要的最近十年的数据“C”和DateDiff部分设置一个字符串变量调用C0到C9。 In之后的部分告诉哪些列填充。

另一个提取有关设备数据的查询会调用此查询。我们通常使用的术语是堆叠查询。

如果这还不足以让您前进,请说明您尝试创建交叉表的数据类型。

获得MVP,Allen Browne在这个主题上有一个很好的页面。 Crosstab query techniques