【问题标题】:The number of columns in the two selected tables or queries does not match两个选定的表或查询中的列数不匹配
【发布时间】:2016-06-16 06:31:01
【问题描述】:

这是我的 SQL。

选择 [分类帐条目 JC].[对象代码], DLookUp("描述", "ACTVTY 和 CMDTY 描述", "L4='" & [对象代码] & "'") AS [对象代码描述], Left([Ledger Entries JC]![Subsidiary], 2) AS L4, DLookUp("描述", "ACTVTY 和 CMDTY 描述", "L4='" & [L4] & "'") AS [L4 描述], Left([Ledger Entries JC]![Subsidiary], 3) AS L5, DLookUp("描述", "ACTVTY 和 CMDTY 描述", "L4='" & [L5] & "'") AS [L5 描述], Left([Ledger Entries JC]![Subsidiary], 4) AS L6, DLookUp("描述", "ACTVTY 和 CMDTY 描述", "L4='" & [L6] & "'") AS [L6 描述], Right([Ledger Entries JC]![Subsidiary], 4) AS L7, DLookUp("描述", "ACTVTY 和 CMDTY 描述", "L4='" & [L7] & "'") AS [L7 描述], [分类帐条目 JC].Amount, DLookUp("Budget", "Budget By Activity By Commodity", "WBS='" & [WBS] & "'") AS Budget, [L6] & “.” & [目标代码] & "." & [L7] 作为 WBS, [分类帐分录 JC].日期 从 [分类帐条目 JC] 联盟 转变 Sum([按商品按活动划分的预算].Budget) 作为[总预算] 选择 [按商品按活动划分的预算].L4, [按商品按活动划分的预算].[L4 说明], [按商品按活动划分的预算].Budget AS [总预算], [按商品按活动划分的预算].L5, [按商品按活动划分的预算].[L5 说明], [按商品按活动划分的预算].L6, [按商品按活动划分的预算]。[L6 说明], [按商品按活动划分的预算].L7, [按商品按活动划分的预算].WBS AS WBS, [按商品按活动划分的预算]。[WBS 描述], [分类帐条目 JC Qry].WBS AS [WBS 2], Sum([Ledger Entries JC Qry].Amount) 作为金额 从 [分类帐条目 JC Qry] RIGHT JOIN [按活动按商品预算] ON [分类帐分录 JC Qry].WBS = [按商品按活动的预算].WBS 通过...分组 [按商品按活动划分的预算].L4, [按商品按活动划分的预算].[L4 说明], [按商品按活动划分的预算].Budget, [按商品按活动划分的预算].L5, [按商品按活动划分的预算].[L5 说明], [按商品按活动划分的预算].L6, [按商品按活动划分的预算]。[L6 说明], [按商品按活动划分的预算].L7, [按商品按活动划分的预算].WBS, [按商品按活动划分的预算]。[WBS 描述], [分类帐条目 JC Qry].WBS 枢 [按商品按活动划分的预算].[对象代码] In(57523, 57531, 57532, 57533, 57535, 57537, 57540, 57590, 57626, 57627, 57628, 57629, 57630, 58230)

【问题讨论】:

  • 您需要格式化您的代码,以便于阅读。

标签: sql-server ms-access vba ms-access-2010 ms-access-2007


【解决方案1】:

您有 UNION 查询,此类查询中的所有选择都应具有相同数量的具有相同数据类型的字段。在这里,第一个查询中有 14 个字段,第二个查询有 12 个列,这会产生错误。您还需要检查每列的数据类型,它们应该在两个查询中对应。这是您的格式化查询,请在有问题的地方进行编辑,我不能。

SELECT
    [Ledger Entries JC].[Object Code],
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [Object Code] & "'") AS [Object Code Description],
    Left([Ledger Entries JC]![Subsidiary], 2) AS L4,
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L4] & "'") AS [L4 Description],
    Left([Ledger Entries JC]![Subsidiary], 3) AS L5,
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L5] & "'") AS [L5 Description],
    Left([Ledger Entries JC]![Subsidiary], 4) AS L6,
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L6] & "'") AS [L6 Description],
    Right([Ledger Entries JC]![Subsidiary], 4) AS L7,
    DLookUp("Description", "ACTVTY and CMDTY Descriptions", "L4='" & [L7] & "'") AS [L7 Description],
    [Ledger Entries JC].Amount,
    DLookUp("Budget", "Budget By Activity By Commodity", "WBS='" & [WBS] & "'") AS Budget,
    [L6] & "." & [Object Code] & "." & [L7] AS WBS,
    [Ledger Entries JC].Date
FROM
    [Ledger Entries JC]
UNION
    Transform
    Sum([Budget By Activity By Commodity].Budget) As [Total Of Budget]
SELECT
    [Budget By Activity By Commodity].L4,
    [Budget By Activity By Commodity].[L4 Description],
    [Budget By Activity By Commodity].Budget AS [Total Budget],
    [Budget By Activity By Commodity].L5,
    [Budget By Activity By Commodity].[L5 Description],
    [Budget By Activity By Commodity].L6,
    [Budget By Activity By Commodity].[L6 Description],
    [Budget By Activity By Commodity].L7,
    [Budget By Activity By Commodity].WBS AS WBS,
    [Budget By Activity By Commodity].[WBS Description],
    [Ledger Entries JC Qry].WBS AS [WBS 2],
    Sum([Ledger Entries JC Qry].Amount) As Amount
FROM
    [Ledger Entries JC Qry]
        RIGHT JOIN [Budget By Activity By Commodity]
        ON [Ledger Entries JC Qry].WBS = [Budget By Activity By Commodity].WBS
Group BY
    [Budget By Activity By Commodity].L4,
    [Budget By Activity By Commodity].[L4 Description],
    [Budget By Activity By Commodity].Budget,
    [Budget By Activity By Commodity].L5,
    [Budget By Activity By Commodity].[L5 Description],
    [Budget By Activity By Commodity].L6,
    [Budget By Activity By Commodity].[L6 Description],
    [Budget By Activity By Commodity].L7,
    [Budget By Activity By Commodity].WBS,
    [Budget By Activity By Commodity].[WBS Description],
    [Ledger Entries JC Qry].WBS
PIVOT
    [Budget By Activity By Commodity].[Object Code] In(57523, 57531, 57532, 57533, 57535, 57537, 57540, 57590, 57626, 57627, 57628, 57629, 57630, 58230)

【讨论】:

  • 谢尔盖,如果有人愿意,它并不是仅仅寻求某人的帮助。感谢您的安排,但问题仍然存在。
  • 我没有更改查询中的任何内容。尝试在第二个查询中添加两个空列,例如,null as empty1, null as empty2,那么您将在两个查询中拥有相同数量的列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多