访问2013 SQL,三个表,两个使用sum错误的结果

时间:2018-05-20 14:47:43

标签: sql ms-access join aggregate

有人可以帮我解决这个问题吗?我在互联网上搜索了几十个例子,但我找不到一个有效的解决方案。 我正在使用Access 2013.问题是我正在尝试进行查询,以突出显示来自供应商的所有零件编号,这些零件编号包含客户退货订单和/或逾期交货。

我使用三张桌子:

  1. tbl_Inventory_Master 我需要部件号现有库存值供应商代码
  2. 对于任何后退订单,我需要加入t bl_Customer_Back_Order 表,因为我需要后退订单行的数量以及后退订单数量的总和< / em>的。
  3. 如果供应商延迟交货,那么我需要添加 tbl_On_Order 表,其中显示逾期交货的数量以及逾期数量的总和< / em>的
  4. 查询正在检索数据,但返回的数量是应该的两倍。

    SELECT
        I.Inventory_Part_Num, I.Description, I.On_Hand_Stock,
        COUNT (B.Part_Number) AS Back_Order_Count, SUM(B.Back_Order_Qty) as BO_Qty, 
        COUNT(O.Part_Number) AS Late_Deliveries_Count, SUM(O.Order_Qty) AS Late_Qty
    FROM (tbl_Inventory_Master AS I   
    LEFT OUTER JOIN tbl_Customer_Back_Order AS B
        ON I.Inventory_Part_Num = B.Part_Number)
    LEFT OUTER tbl_On_Order AS O
        ON I.Inventory_Part_Num = O.Part_Number
    WHERE
        I.Customer_Code = '274' AND
        O.Due_Date < [ENTER TODAYS DATE IN FORMAT DD/MM/YYYY]
    GROUP BY I.Inventory_Part_Num, I.Description, I.On_Hand_Stock
    

    例如,对于零件号2022940,我应该有10个后退订单行逾期数量为43.相反,查询返回20 返回订单行逾期数量总和为86。

    从订单表中我有三个订单,总共144件,而查询返回960。

    有人可以建议,因为这让我发疯了吗?

0 个答案:

没有答案