2012-08-02 405 views
0

嘗試在接收到此錯誤時在其他兩個連接的表上創建外連接 - 我只是看不到如何創建兩個單獨的查詢來使其工作。子查詢似乎也不工作,任何幫助表示讚賞。我收到以下查詢的錯誤,謝謝。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; 
+0

見http://stackoverflow.com/questions/11734577/ambiguous-left-joins-in -ms-access/11735741#11735741 – Fionnuala 2012-08-02 18:56:13

+0

爲什麼你得到這行'INNER JOIN顏色ON CardColors.ColorID = Colors.ID'?所有你選擇的是'CardColors.ColorID',所以不使用顏色表。 – Fionnuala 2012-08-02 19:05:46

+0

這個CardHeader.ID應該是CardHeader.CardID嗎?我覺得是這樣的。 – Fionnuala 2012-08-02 19:56:51

回答

1

第二SQL語句可以通過參考第一個語句和誤差來校正它運行但對於以下參數詢問(它不應該)以下。該錯誤是,無論CardHeader.IDMainQry.CardID被提示輸入參數,這表明內聲明應包括:CardHeader.CardID,而不是CardHeader.ID