【发布时间】:2020-09-29 21:39:39
【问题描述】:
我有下面的 SQL,它返回正确的答案,直到第二个表匹配。在任何回报中应该只有一个“1”,但我在不同的地方得到了 2 和 3。我在表格中有 3 个不同的日期,有时当它在 PA Sim Cnt 中遇到某些东西时会影响 2 Mtr Cnt 中的返回。
SELECT [Membership tbl].[Call Sign], Sum(IIf([2 Meter Net tbl].[Cur Date]=#9/15/2020#,1,0)) AS [2 Mtr Cnt], Sum(IIf([PA Simplex tbl].[Cur Date]=#9/15/2020#,1,0)) AS [PA Sim Cnt]
FROM ([Membership tbl] LEFT JOIN [2 Meter Net tbl] ON [Membership tbl].[Call Sign] = [2 Meter Net tbl].[Call Sign]) LEFT JOIN [PA Simplex tbl] ON [Membership tbl].[Call Sign] = [PA Simplex tbl].[Call Sign]
GROUP BY [Membership tbl].[Call Sign]
ORDER BY [Membership tbl].[Call Sign];
我已经为此工作了几天,并尝试了我能想到的所有组合。
【问题讨论】:
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出尽可能少的代码,即您显示的代码可以通过您显示的代码扩展为不正常的代码。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 暂停总体目标的工作,将代码砍到第一个表达式,没有给出你期望的内容,说出你期望的内容和原因。
-
这似乎是一个常见的错误,人们想要一些连接,每个可能涉及不同的键,一些子查询,每个可能涉及连接和/或聚合,但他们错误地尝试完成所有连接然后全部聚合或聚合以前的聚合。在适当的行上编写单独的聚合和/或聚合一个案例语句选择行;加入一个独特的列集。有时 DISTINCT 聚合在非键连接后选择正确的值。 (对 2 个输入表中任一个的非键的连接可以为每个表的每个键提供多行。)
标签: sql datetime ms-access sum left-join