【问题标题】:In Access create a calculated column called order based on a column of dates在 Access 中,根据日期列创建一个名为 order 的计算列
【发布时间】:2019-11-25 06:17:09
【问题描述】:

在 Microsoft Access 中,我需要将交叉表查询绑定到报表。要绑定查询,我需要提前知道列名,这是问题所在,因为我不知道数据中将包含哪些日期。日期名称最终成为交叉表查询中的列。由于日期不同,列名也不同,我无法绑定报告,因为我不知道列名。我能想到的最好的解决方案是计算一个用它的顺序替换日期的列。那么列名将始终为 1,2,3,4,5,6,7,8。但是,我无法创建此计算订单列。无论我做什么都可以访问错误。部分原因是该表将用于带有参数的交叉表查询,因此可以排除任何额外的复杂问题。

如何将 StatusDate 转换为 CalculatedOrder? 编辑: 我不能使用子查询来制作 cmets 中所要求的 CalculatedOrder,因为原始查询具有参数。当子查询使用基于参数的查询时访问错误。

【问题讨论】:

  • access.hookom.net 链接不适用,因为日期是随机的。 allen browne 链接有效,但仅适用于我提出的非常简单的示例。我需要在查询中包含多个我认为不相关的列。我可能不得不重写问题
  • Allen Brownes 解决方案一切正常,直到我尝试在交叉表中使用计算顺序。然后 Access 会引发错误。这显然是一个错误。
  • 另一种方法stackoverflow.com/questions/56017569/…。提供具有代表性的数据示例以及所需的输出。
  • 似乎到目前为止提出的两种方法都导致计算顺序是一个表达式。一切正常,直到您尝试使用 CalculatedOrder 作为交叉表中的列变量。然后你会得到错误:必须在总行中为交叉表行中具有列标题的字段输入 group by。我可能问错了问题。

标签: sql ms-access calculated-columns crosstab correlated-subquery


【解决方案1】:

真正的问题是 Access 中的两个错误。我的猜测是 Access 会在任何额外的复杂性下出错。如果原始表有参数,则使用没有参数的表的副本。在所有情况下,在计算交叉表之前,只需将您的值复制到另一个临时表中。在 Access 中,如果交叉表列变量是相关子查询,则交叉表不起作用。 您可以使用类似于 allenbrowne.com/ranking.html 的相关子查询来创建 CalculatedOrder 列。 如果表有参数:

PARAMETERS myfirstparameter
SELECT StatusDate, CrossTabRow, CrossTabValue INTO NoParametersTable
FROM MyTableWithParameters 
WHERE ...

然后只使用分组的 StatusDate 进行查询。

    SELECT NoParametersTable.StatusDate
FROM NoParametersTable
GROUP BY NoParametersTable.StatusDate;

然后使用相关子查询将 StatusDate 转换为 Order:

SELECT CrossTabRow, CrossTabValue, (SELECT Count(dupe.StatusDate) +1 FROM [MyGroupedStatusDateQuery] as dupe WHERE dupe.StatusDate < [MyGroupedStatusDateQuery].StatusDate) AS [Order]
FROM NoParametersTable INNER JOIN [MyGroupedStatusDateQuery] ON NoParametersTable.StatusDate = MyGroupedStatusDateQuery.StatusDate)

最后,通过将值复制到另一个临时表中,确保将此最终查询转换为没有相关子查询的表。在最终临时表上运行交叉表,交叉表将起作用,因为最终表只有值而不是参数和相关子查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-30
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2013-01-30
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    相关资源
    最近更新 更多