ms-access - 有没有办法组合具有不同长度的列的表?
问题描述
我有一组每月收到的表格,告诉我会员当月支付的费用。如果他们不付钱,他们就不会出现在桌子上。我想弄清楚每个成员随着时间的推移支付了多少。一个成员可能会出现在一个月的表格中,但不会出现在另一个月的表格中。每个表共享一个链接到成员的“ID”,但由于每月的可变性,它们的列长度并不相同。每个表都包含一个成员和他当月支付的会费金额。因此,我遇到了“两个选定表中的列数或联合的查询不匹配”错误。
运行Access 365,粘贴两组代码:
当我尝试 INNER JOIN 时,我丢失了并非所有表中的条目。
当我尝试 UNION 时,出现错误:“两个选定表中的列数或联合查询的查询不匹配。”
SELECT [2018-9 Dues Deduct].ID, [2018-9 Dues Deduct].Name, [2018-9 Dues Deduct].[Curr Dedn], [2018-10 Dues Deduction].[Curr Dedn], [2018-11 Dues Deductions].[Curr Dedn], [2018-12 Dues Deductions].[Curr Dedn]
FROM (([2018-9 Dues Deduct]
INNER JOIN [2018-10 Dues Deduction] ON [2018-9 Dues Deduct].ID = [2018-10 Dues Deduction].ID)
INNER JOIN [2018-11 Dues Deductions] ON [2018-10 Dues Deduction].ID = [2018-11 Dues Deductions].ID)
INNER JOIN [2018-12 Dues Deductions] ON [2018-11 Dues Deductions].ID = [2018-12 Dues Deductions].ID;
SELECT
[2018-9 Dues Deduct].ID,
[2018-9 Dues Deduct].Name,
[2018-9 Dues Deduct].[Curr Dedn],
[2018-10 Dues Deduction].[Curr Dedn]
FROM [2018-9 Dues Deduct]
INNER JOIN [2018-10 Dues Deduction] ON [2018-9 Dues Deduct].ID = [2018-10 Dues Deduction].ID
GROUP BY [2018-9 Dues Deduct].ID, [2018-9 Dues Deduct].Name, [2018-9 Dues Deduct].[Curr Dedn], [2018-10 Dues Deduction].[Curr Dedn]
UNION
SELECT
[2018-10 Dues Deduction].ID,
[2018-10 Dues Deduction].Name,
[2018-10 Dues Deduction].[Curr Dedn],
[2018-11 Dues Deductions].[Curr Dedn]
FROM [2018-10 Dues Deduction]
INNER JOIN [2018-11 Dues Deductions] ON [2018-10 Dues Deduction].ID = [2018-11 Dues Deductions].ID
UNION
SELECT
[2018-11 Dues Deductions].ID,
[2018-11 Dues Deductions].Name,
[2018-11 Dues Deductions].[Curr Dedn]
FROM [2018-11 Dues Deductions]
INNER JOIN [2018-12 Dues Deductions] ON [2018-11 Dues Deductions].ID = [2018-12 Dues Deductions].ID;
我的目标是查看所有成员 (ID) 的所有扣除额 (Curr Dedn),无论他们本月是否付款。提前致谢。
解决方案
您在第二个发布的代码片段上收到错误?(因为有工会)
长度=行数没问题,列数(联合)是你的问题。这就是你的错误所说的。
我看到两个原因:
- 您选择不同数量的列并希望合并它们 - 所有选择都需要相同的列才能使其正常工作
- 您使用“分组依据”-我只是不确定此查询是否可以独立为您提供预期的那么多列-如果确实如此,请忽略这部分
关于 1.:您在第一次选择中有 4 列,在第 2 次中有 4 列,在第 3 次中只有 3 列。
=> 你需要在你的第三个选择中的第四列。如果你没有数据,做一个假人。
[由于评论“有效”而更新]:试试这个 - 我不知道“dummy”或“dummy”是否正确
SELECT
[2018-9 Dues Deduct].ID,
[2018-9 Dues Deduct].Name,
[2018-9 Dues Deduct].[Curr Dedn],
[2018-10 Dues Deduction].[Curr Dedn]
FROM [2018-9 Dues Deduct]
INNER JOIN [2018-10 Dues Deduction] ON [2018-9 Dues Deduct].ID = [2018-10 Dues Deduction].ID
GROUP BY [2018-9 Dues Deduct].ID, [2018-9 Dues Deduct].Name, [2018-9 Dues Deduct].[Curr Dedn], [2018-10 Dues Deduction].[Curr Dedn]
UNION
SELECT
[2018-10 Dues Deduction].ID,
[2018-10 Dues Deduction].Name,
[2018-10 Dues Deduction].[Curr Dedn],
[2018-11 Dues Deductions].[Curr Dedn]
FROM [2018-10 Dues Deduction]
INNER JOIN [2018-11 Dues Deductions] ON [2018-10 Dues Deduction].ID = [2018-11 Dues Deductions].ID
UNION
SELECT
[2018-11 Dues Deductions].ID,
[2018-11 Dues Deductions].Name,
[2018-11 Dues Deductions].[Curr Dedn],
"dummy"
FROM [2018-11 Dues Deductions]
INNER JOIN [2018-12 Dues Deductions] ON [2018-11 Dues Deductions].ID = [2018-12 Dues Deductions].ID;
推荐阅读
- postgresql - 仅在 Linux 中;org.postgresql.util.PSQLException:错误:关系“table_name”不存在
- flutter - 颤动改变焦点上的边框颜色
- python - 在python中循环列名
- python - 如何获取文件大小而不在python请求中下载它
- dictionary - 有没有办法将 Tableau 中的地理数据点分配给所有未指定的区域?
- iis - IIS Web 服务器上的 Dash 应用程序超时并出现 HTTP500 SC258 错误
- python - 我该怎么办 PIL 导入不起作用
- xml - XSLT 1.0 - 如何排除不包含特定子节点的节点树
- postgresql - PostgreSQL 无法生成 uuid 但安装了 uuid-ossp 扩展?
- c# - 修改 OrderBy 的扩展以处理 ThenBy