【发布时间】:2018-03-23 03:28:06
【问题描述】:
我正在尝试在“策略”字段中加入 3 个表 A、B 和 C。表 B 和 C 也有一个名为“值”的字段。 A 中的 Policy 字段仅存储每个策略的前 4 位,而 B 和 C 存储完整的 7 位。
我要做的是,将 A 和 B 之间每个匹配项的值相加,然后在 C 中查找 A 和 B 之间的每个匹配项;如果策略存在于 C 中,则求和 C 中的值;如果 C 中不存在该策略,则返回 0。最后,取 B 和 C 中的 Values 之间的差,下限为零。
抱歉,我知道这听起来有点令人困惑。我制作了一些简单的表格来说明我在这里要完成的工作。 “...”只是意味着每个表格中没有显示大量其他条目。在所需表中,中间列(B 中的值、C 中的值和计算)不是必需的,仅用于说明。我只关心“最终”数字。
[插图]
现在,我到目前为止所做的尝试:
SELECT
Sum(IIf([B]![Value]>[C]![Value],[B]![Value]-[C]![Value],0)) AS [Final]
FROM [C], [B], [A]
WHERE (((Left([C].[Policy],4))=[A].[Policy]) AND ((Left([B].[Policy],4))=[A].[Policy]));
(不是这样)显然,这样做的问题是它在内部连接了所有 A、B 和 C,并且不会像我希望的那样对 A 和 B 中的内容而不是 C 中的内容返回零。我应该在哪里改变?
【问题讨论】:
-
嗨蒂姆!感谢您的回复。很抱歉,我知道这有点令人困惑。这就是为什么我附上了一张表格 A、B、C 和期望结果的图片。你看到了吗?