使用多个内连接和左连接

时间:2014-12-18 17:08:04

标签: database ms-access-2010 left-join inner-join

目前我有3张表已成功加入,tbl_Monthly_Chgstbl_Master_Phonetbl_inventory。我目前正在将主电话表加入到每月费用表中,并且将库存表连接到主电话表。这为我提供了所有月费和这些费用的设备ID的输出,包括那个没有设备ID的月费(每月费用表中的每月费用多于库存表)。这一切都很完美,期望库存表和月度费用表都包含许多字段的ID而不是实际描述。为了获得每个ID的描述,我需要通过连接添加更多表。当我尝试在Access中的表设计视图中构建它时,我收到一条错误消息,指出由于外部连接不明确而无法完成此操作。我尝试对SQL进行更改,但遇到了问题。以下是我尝试过的最后一件事。有没有办法将这些额外的表添加到具有内部联接的查询中,并仍然使用左连接,而不必分割查询?

           SELECT tbl_Inventory.Device_Model
                        ,,tbl_Inventory_Monthly_Charges.Bill_Cycle_Date
                        ,tbl_Monthly_Charges.Client_ID
                        ,tbl_Monthly_Charges.Client_Name
                        ,tbl_Monthly_Charges.ECPD_ID
                        ,tbl_Monthly_Charges.Invoice
                        ,tbl_Monthly_Charges.Account_Number
                        ,tbl_Monthly_Charges.User_Name
                        ,tbl_Monthly_Charges.Cost_Center
                        ,tbl_Monthly_Charges.Plan_Description_Display
                        ,tbl_Monthly_Charges.Category
                        ,tbl_Monthly_Charges.Sub_Plan_Category
                        ,tbl_Monthly_Charges.Cost
                        ,tbl_Master_Phone.Wireless_Number
                        ,Max(tbl_Inventory.Bill_Cycle_Date) AS MaxOfBill_Cycle_Date
                    FROM (
                        tbl_Master_Phone INNER JOIN tbl_Monthly_Charges ON tbl_Master_Phone.Wireless_Number = tbl_Monthly_Charges.Wireless_Number
                    tbl_Master_Device INNER JOIN tbl_Inventory ON tbl_Master_Device.Device_Model = tbl_Inventory.Device_Model
                    )
                    LEFT JOIN tbl_Inventory ON tbl_Master_Phone.ID = tbl_Inventory.Wireless_Number
                    GROUP BY tbl_Inventory.Device_Model
                        ,tbl_Inventory_Monthly_Charges.Bill_Cycle_Date
                        ,tbl_Monthly_Charges.Client_ID
                        ,tbl_Monthly_Charges.Client_Name
                        ,tbl_Monthly_Charges.ECPD_ID
                        ,tbl_Monthly_Charges.Invoice
                        ,tbl_Monthly_Charges.Account_Number
                        ,tbl_Monthly_Charges.User_Name
                        ,tbl_Monthly_Charges.Cost_Center
                        ,tbl_Monthly_Charges.Plan_Description_Display
                        ,tbl_Monthly_Charges.Category
                        ,tbl_Monthly_Charges.Sub_Plan_Category
                        ,tbl_Monthly_Charges.Cost
                        ,tbl_Master_Phone.Wireless_Number;

1 个答案:

答案 0 :(得分:0)

我建议将每月费用表的所有内部联接放入一个子查询中,然后将所有内部联接加入另一个子查询中的库存。从那里开始,我将使用2个子查询加入原始选择。