Folks。我似乎无法找到这个问题的答案。我可以在SQL Server中执行此操作,但我现在正在使用Access 2013,而我通常的SQL技巧似乎无法正常工作。从MS Access中的多个表中总计总计
我需要创建班级成本与收入总结报告。
我有三个表:班级列表,成本列表,注册列表。成本和注册(成本&收入)都通过在所有表中标识该类的关键字段与班级列表相关联。
我能够运行成本报告或收入报告,并且每个班级的总计都很好,但是当我组合它们以获取每个班级的净额时,成本会乘以注册中的行数报告,反之亦然。
我试过使用外部连接,但访问不喜欢它,即使在正确的地方[]。将excel留在访问中会更好,因为离开excel是整个重点。
这里的坏结果背后的SQL。我知道这些连接是错误的,但我无法访问接受任何其他类型的连接。
SELECT DISTINCTROW Classes.ID,
Classes.Title,
Classes.Instructor,
Classes.Date,
Sum(Costs.Amount) AS [Sum Of Amount],
Sum(Registrations.Tuition) AS [Sum Of Tuition],
Count(*) AS [Count Of Classes]
FROM (Classes
LEFT JOIN Registrations ON Classes.[ID] = Registrations.[Class ID])
LEFT JOIN Costs ON Classes.[ID] = Costs.[Class ID]
GROUP BY Classes.ID,
Classes.Title,
Classes.Instructor,
Classes.Date;
有什么建议吗?提前致谢。
为成本和收入汇总查询构建一个汇总查询,然后将2个汇总查询加入到班表列表中。 – June7
欢迎来到SO。首先,请参阅[左和右连接操作](https://support.office.com/zh-cn/article/LEFT-JOIN-RIGHT-JOIN-Operations-ebb18b36-7976-4c6e-9ea1-c701e9f7f5fb)。 SQL语法(包括JOIN关键字)与SQL Server不同。 –
您提到了“SQL技巧”,“任何其他类型的连接”以及“在SQL Server中执行此操作”的功能。如果你已经尝试过这样的事情,或者如果你认为其他语法在其他地方有效,那么可以将这样的例子包括在内,而不是仅仅提及它们。这不仅可以提供可操作的东西,还可以揭示可能不会用文字表达的细节。我没有看到任何联接或语法如何让您执行单个查询来获取不同表上的聚合。即使它们是子查询,也需要分别总结成本和学费。 –