【问题标题】:MS-Access : How to sum multiple values from 2 different tables according to dates with output on 1 date per rowMS-Access:如何根据日期对 2 个不同表中的多个值求和,每行输出 1 个日期
【发布时间】:2020-08-14 00:10:55
【问题描述】:

我仍在开始学习 Access。

我有 3 张桌子。表一将日期作为主键,并将包含所有日期。表 2 和表 3(表 3 在示例图像中被错误标记为第二个表 2)都将有 2 列,即日期和金额。表 2 和表 3 可能有多行具有相同的日期(不同的金额),有些可能会错过日期。我正在寻找一个输出查询,该查询对于表 2 和 3 中的每个日期都有 1 行,其中有一个金额(某些日期可能在任一表中都没有金额),并将该日期的所有这些金额相加在 1 行中。下面是示例表和所需的输出查询。非常感谢新手的帮助!

我现在有了这段代码(请注意,我已经删除了表 1)

SELECT Table2.Dat, Sum(Table2.Amount) AS [Sum Of Amount], Sum(Table2.Tax) AS [Sum Of Tax]
FROM Table2
GROUP BY Table2.Dat;

UNION ALL SELECT Table3.Dat, Sum(Table3.Amount) AS [Sum Of Amount], Sum(Table3.Tax) AS [Sum Of Tax]
FROM Table3
GROUP BY Table3.Dat;

这会将每个单独表格的相同日期的金额相加,但不会将两个表格的日期相加。我想这是另一个 GROUP 功能,但我没有成功地正确形成它。

上述代码的当前结果

【问题讨论】:

  • 欢迎来到 Stack Overflow! StackOverflow 不是免费的编码服务。你应该try to solve the problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • 您需要对表 2 和表 3 进行 UNION ALL,然后是 SUM(Amount)GROUP BY Date
  • 表 1 似乎无关紧要,因为您的输出没有所有日期,只有表 2 和表 3 中的日期。
  • 我认为Table1 在这里并不重要。从Table2Table3 进行UNION 查询。看我的回答。
  • 感谢 Barmar,对不起,我没有把这个问题正确地放在一起!随着我的进步和改进,我将尽我所能继续学习正确的程序。

标签: ms-access


【解决方案1】:

试试下面的查询。

SELECT tt.mDate AS TransactionDate, Sum(tt.SumOfAmount) AS AmountTotal
FROM (SELECT Table2.tDate as mDate, Sum(Table2.Amount) AS SumOfAmount
FROM Table2
GROUP BY tDate

UNION

SELECT Table3.tDate As mDate, Sum(Table3.Amount) AS SumOfAmount
FROM Table3
GROUP BY tDate)  AS tt
GROUP BY tt.mDate;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2019-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多