【发布时间】: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...”,但这并不理想。有没有更好的方法来进行联接查询?跨度>
-
“主”表应该是具有交叉表查询左连接的类别表。