首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否有一种方法可以组合具有不同长度列的表?

是否有一种方法可以组合具有不同长度列的表?
EN

Stack Overflow用户
提问于 2019-01-24 15:23:41
回答 1查看 55关注 0票数 1

我有一套每月收到的表格,告诉我一个会员当月付了多少钱。如果他们不付钱,他们就不会出现在桌子上。我想弄清楚每一位成员在一段时间内支付了多少钱。成员可以出现在一个月的表格中,但不能出现在另一个月的表中。每个表共享一个链接到一个成员的"ID“,但是由于每个月的可变性,列长度并不都相同。每个表格都有一位会员和他当月缴纳的会费。由于这个原因,我遇到了一个“联合的两个选定表或查询中的列数不匹配”的错误。

运行Access 365,粘贴两组代码:

当我尝试内部连接时,我会丢失并非所有表中的条目。

当我尝试一个UNION时,我会得到一个错误:“两个选中的表或联合查询的查询中的列数不匹配。”

代码语言:javascript
运行
复制
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;
代码语言:javascript
运行
复制
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;

我的目标是看到所有的扣减(Curr )从所有成员(ID),无论他们是否支付了这个月。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-01-24 15:33:04

你在第二次贴出的代码片段上看到错误了吗?(因为有工会)

行长度=行数没有问题,列数(合并)是您的问题。你的错误就是这么说的。

我认为有两个原因:

  1. 您选择不同数量的列,并希望将它们合并-所有选择都需要相同的列才能正常工作。
  2. 您使用"group by“--我只是不确定这个查询作为独立的查询是否像预期的那样为您提供了那么多列--如果是这样的话,忽略这个部分

对于1:你有4列在第一选择,4在第2和只有3在第3。

=>你需要在你的第三选择第四列。如果你没有数据,那就做个假人。

由于评论“工作”而更新:尝试这个-我不知道“虚拟”或‘虚拟’是正确的

代码语言:javascript
运行
复制
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;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54350003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档