【问题标题】:Can I force row headers to show on an Access crosstab with dynamic column headers?我可以强制行标题显示在带有动态列标题的 Access 交叉表上吗?
【发布时间】:2021-06-22 08:45:43
【问题描述】:

我有 tblOuts 按类别和日期跟踪库存中的 Sku:

OutDate Category Sku
20210322 A 111
20210322 B 222
20210323 A 111
20210323 B 222
20210323 B 333
20210324 D 444

我创建了一个交叉表,它将按类别和 OutDate 显示 Sku 的计数:

Category 20210322 20210323 20210324
A 1 1
B 1 2
D 1

如何修改交叉表以同时显示类别 C,即使我的表中还没有任何数据?

Category 20210322 20210323 20210324
A 1 1
B 1 2
C
D 1

通常我会创建一个单独的表,列出所有类别并将其加入交叉表。但是我想不出一个理想的方法来做到这一点。

SELECT tblCategories.Category, qryCrosstab.*
FROM tblCategories LEFT JOIN qryCrosstab ON tblCategories.Category = qryCrosstab.Category

给了我两个我不想要的类别字段:

tblCategories.Category qryCrosstab.Category 20210322 20210323 20210324

或者,我可以执行以下操作,但每次向表中添加新日期时都需要修改我的查询:

SELECT tblCategories.Category, qryCrosstab.20210322, qryCrosstab.20210323, qryCrosstab.20210324
FROM tblCategories LEFT JOIN qryCrosstab ON tblCategories.Category = qryCrosstab.Category

【问题讨论】:

  • 我可以吗? 是的,您应该可以这样做。试试看。
  • @Gustav,对不起,我应该换个方式问。我可以想到两种使用左连接的方法。第一个是“SELECT tblCategories.Category, qryCrosstab.*”,但这给了我两个类别字段。第二种是每次添加新日期时更新我的​​联接查询(“SELECT tblCategories.Category, qryCrosstab.20210322...”,但这并不理想。有没有更好的方法来进行联接查询?跨度>
  • “主”表应该是具有交叉表查询左连接的类别表。

标签: ms-access ms-access-2010


【解决方案1】:

是的,我明白你所说的“加倍”是什么意思:

SELECT 
    Category.Category, 
    qOut.*
FROM 
    Category 
LEFT JOIN 
    qOut ON Category.Category = qOut.Category;

您不能忽略其中一个类别字段吗?

【讨论】:

  • 是的,如果没有更好的解决方案,这绝对是一个选择,谢谢。如果可能的话,我只是希望没有双重类别的东西。
  • 我能想到的唯一方法是从交叉表中读取字段名称,然后通过代码调整最终查询的SQL。当然是可行的,并且对于驱动报告的查询很常见。
  • 谢谢。刚刚发现这些数据正在输入 Excel,所以他们可以忽略额外的列。抱歉延迟结束 - 我一直在等待反馈,但会议一直被推迟。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多