MS Access中的模糊外连接

时间:2012-08-02 18:24:00

标签: sql ms-access

尝试在收到此错误时在另外两个连接表上创建外部联接 - 我只是不知道如何创建两个单独的查询以使其工作。子查询似乎也不起作用,任何帮助表示赞赏。我收到以下查询的错误,谢谢。

SELECT 
    CardHeader.CardID, CardHeader.CardDescription, CardHeader.GloveSize,     
    CardHeader.GloveDescription, CardDetail.Bin, CardDetail.ItemID, Items.ItemDescription, 
    Items.VCatalogID, CardDetail.ChargeCode, CardDetail.Quantity, Items.Cost, CardColors.ColorID
FROM
    ((Items 
INNER JOIN 
    (CardHeader INNER JOIN CardDetail ON CardHeader.CardID = CardDetail.CardID) ON Items.ItemID = CardDetail.ItemID) 
LEFT JOIN 
    CardColors ON CardDetail.ItemID = CardColors.ItemID) 
INNER JOIN 
    Colors ON CardColors.ColorID = Colors.ID
ORDER BY 
    CardHeader.CardID;

我尝试了以下运行,但要求以下参数(它不应该)

CardHeader.ID, MainQry.CardID

SELECT 
    MainQry.ID, MainQry.CardDescription, MainQry.GloveSize, 
    MainQry.GloveDescription, MainQry.Bin, MainQry.ItemID,
    MainQry.ItemDescription, MainQry.VCatalogID, MainQry.ChargeCode, 
    MainQry.Quantity, MainQry.Cost, SubQry.ColorID
FROM
    (SELECT 
         CardHeader.ID, CardHeader.CardDescription, CardHeader.GloveSize, 
         CardHeader.GloveDescription, CardDetail.Bin,
         CardDetail.ItemID, Items.ItemDescription, Items.VCatalogID, 
         CardDetail.ChargeCode, CardDetail.Quantity, Items.Cost 
     FROM 
         Items 
     INNER JOIN 
         (CardHeader 
     INNER JOIN 
         CardDetail ON CardHeader.CardID = CardDetail.CardID) ON Items.ItemID = CardDetail.ItemID
    )  AS MainQry 
LEFT JOIN 
    (SELECT 
         CardColors.ItemID, CardColors.ColorID 
     FROM 
         CardColors 
     INNER JOIN 
         Colors ON CardColors.ColorID = Colors.ID) AS SubQry ON MainQry.ItemID = SubQry.ItemID
ORDER BY 
    MainQry.CardID;

1 个答案:

答案 0 :(得分:1)

可以通过引用第一个语句和错误来纠正第二个SQL语句。错误是CardHeader.IDMainQry.CardID都提示输入参数,这表示内部语句应包含CardHeader.CardID,而不是CardHeader.ID