【问题标题】:MS Access Combine tables with like fieldsMS Access 将表与类似字段组合
【发布时间】:2013-05-08 17:34:35
【问题描述】:

我想获得按日期排序的成本和付款的组合结果。这是我正在尝试的查询:

SELECT ClientID, TheDate, Payment, Cost
FROM
(
  SELECT PaymentDate AS TheDate, Amount AS Payment, ClientID
  FROM Payment
  UNION ALL
  SELECT BookedDate AS TheDate, Cost, ClientID
  FROM [All Bookings Query]
)
ORDER BY TheDate DESC;

它几乎可以工作......但是,会弹出一个框让我输入“付款”的值(就像该字段不存在一样)。如果我将其留空并点击确定,我会得到一个结果集,其中“付款”列完全空白,“成本”列包含两个表中的金额。我使用的字段名称是 100% 正确的。

我认为问题在于 UNION 正在尝试将两个表压缩为具有 3 列的结果,而我正在尝试选择 4。我以前从未做过这样的查询,所以我不知道如何解决这个问题。

我想要的是将付款和成本放在单独的列中。我的查询有什么问题?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    您需要在每个子查询中有 4 列,将 0 输入到付款的成本列中,将 0 输入到预订的付款列中。

    SELECT ClientID, TheDate, Payment, Cost
    FROM
    (
      SELECT PaymentDate AS TheDate, Amount AS Payment, 0 AS Cost, ClientID
      FROM Payment
      UNION ALL
      SELECT BookedDate AS TheDate, 0 As Payment, Cost, ClientID
      FROM [All Bookings Query]
    )
    ORDER BY TheDate DESC;
    

    【讨论】:

    • 谢谢!我还发现 Access 需要 SELECT 中的字段顺序来匹配所有查询。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多