sql - Access '13 - 无法识别字段名称错误,要报告问题的交叉表

标签 sql ms-access syntax-error crosstab

背景

每个月我都会运行一个交叉表查询,然后用 Access 报告“修饰”它。

CROSSTAB SQL:

TRANSFORM Sum(myTable.Field1) AS SumOfField1
SELECT myTable.Date, Sum(myTable.Field1) AS [Daily Totals]
FROM myTable
GROUP BY myTable.Date
PIVOT myTable.Field2;

其中 Field1 是 $ Amount,Field2(对于本示例)将是“Option1”、“Option2”或“Option3”。

典型的交叉测试结果:
Date     Option1    Option2   Option3
-----    --------   --------  --------
Day1      $5.00      -$2.37   
Day2                  $3.15
Day3                           $2.22

我的问题

因为 100 次中有 99 次我将在给定月份的每个“选项”中包含数据,所以我创建了一个报告,以“漂亮”的格式清理交叉表结果。然而,这个月,我的原始数据没有任何“Option3”值。因此,Option3 的交叉表列不会出现在我的查询结果中。然后,由于报告直接从交叉表中提取并按名称查找每个选项列,这会导致我的报告中断并给出错误:

The Microsoft Access database engine does not recognize '[Option3]' as a valid field name or expression.



故障排除

我已经尝试了一些有关故障排除的方法:
  • =Nz(Sum(myTable.Field1),0) 在 SQL 中......但是这只会产生 0,其中 field2 的现有值为 NULL - 因此“Option3”不会作为全 0 的列出现。
  • =Nz([Option3],0) 在报告中...仍然得到上面的错误(字段无法识别)
  • =IIf(IsError(Option3),0,(Option3)) 在报告中...得到错误:

  • The expression you entered contains invalid syntax


  • =IIf(IsEmpty(Option3),0,(Option3)) 在报告中...同上
  • =IIf(IsMissing(Option3),0,(Option3)) 在报告中...同上

  • 在这一点上,我不知道如何让我现有的报告运行(只为“Option3”显示一列 0)。

    最佳答案

    Specify column headingsIN PIVOT 中的列表条款。

    PIVOT myTable.Field2 IN ('Option1', 'Option2', 'Option3');
    

    无论源数据是否包含具有这些值的任何行,这些列标题都将包含在查询结果集中(按列出的顺序)。

    一个副作用是,如果交叉表数据源可能包含 Option4,则它不会包含在结果列中。这对您的报告来说很好,因为它的设计并不是为了期待 Option4 列。但是,如果您在其他地方使用交叉表查询,则可能会引起关注。

    在报告中,您可以使用 Nz()用零替换选项列中的空值。

    关于sql - Access '13 - 无法识别字段名称错误,要报告问题的交叉表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755161/

    相关文章:

    matlab - 在 MATLAB 中读取非 ASCII MS Access 数据库(使用 Gurmukhi (ਗੁਰਮੁਖੀ) 字母表的旁遮普语文本)

    javascript - "SyntaxError: Cannot use import statement outside of a module"运行编译后的 Javascript 代码时 TypeScript 文件中的错误

    sql - Access SQL LEFT JOIN 替代方案

    sql - 使用多个 where 子句的多表选择,有没有比自连接更好的方法?

    mysql - "from"在这个位置无效,期待: EOF, ";"

    sql - SSIS 从 Excel 导入错误数量的数据

    php - 在 PHP 中连接到两个不同的数据库?

    php - 在 php 中回显 session 变量

    javascript - 在 .find() 之后链接插件会出现意外的 jQuery 语法错误

    sql - 及时卡住django模型对象,像快照一样