Access中内部联接的交叉乘法

时间:2014-04-21 21:45:45

标签: sql sql-server ms-access-2010

我在Access中有三个表,结构如下(附图):

enter image description here

我正在创建一个查询,以便通过" ID"来从所有三个表中提取信息。表3实际上每个ID有多个记录,而"表2"每个ID只有一条记录。由于某种原因,查询的结果如下:表3中ID的正确总和和表2中值的交叉产品(让我们说表3中有三个ID#1实例:我会得到800在实际数据(表3)中,我将在预算数据中得到3000,这是表3中ID#1的记录数的1000倍。如果我已将表2和表3连接到表1上的表1,为什么会发生这种交叉乘法?

谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用Sub Query解决此问题 请尝试以下..

     SELECT A.Id,
    A.OpenDate,
    A.CloseDate,
    B.BudgetData,
    (SELECT SUM(C.ActualData) FROM Table3 C WHERE C.Id=A.Id) ActualData
    FROM Table1 A
        LEFT JOIN Table2 B
    ON A.Id=B.Id