Full Join sur MS Access

donc je suis en train de faire une jointure sur MS Access 2003, mais simplement qu'il n'a pas de soutien. Alors, j'ai essayé de prendre mes deux instructions select, puis se joindre à un à l'aide d'une jointure GAUCHE et de faire une UNION avec la même déclaration, mais avec un RIGHT join. L'accès m'a donné un message d'erreur indiquant qu'il ya quelque chose de mal avec la commande JOIN. Heres quelques sql...

SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum, 
tbl_Inventory.Color,  tbl_Inventory.InInventory, 
tbl_Inventory.OutInventory, 
(tbl_Inventory.Stocks +   tbl_Inventory.InInventory - 
tbl_Inventory.OutInventory) AS Balance,  
tbl_Inventory.Weight, tbl_Inventory.CF,   
(tbl_Inventory.Weight *Balance) AS TotalWeight, 
(tbl_Inventory.CF * Balance) AS TotalCF, 
tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate, 
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut, 
tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory 
    ON tbl_Vendors.vid = tbl_Inventory.VendorID)
LEFT JOIN tbl_ItemHistory 
ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum
ORDER BY tbl_Inventory.ItemNum, tbl_ItemHistory.orderDate 

désolé si ce n'est pas dans le code de format, de l'accès sql je suppose que c'est tout à fait normal de texte. c'est seulement avec la jointure gauche. si vous avez des idées, merci de le dire. Merci!

edit: étape 2 jointures,

SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum, tbl_Inventory.Color, 
tbl_Inventory.InInventory, tbl_Inventory.OutInventory, 
(tbl_Inventory.Stocks+tbl_Inventory.InInventory-tbl_Inventory.OutInventory) AS Balance, 
tbl_Inventory.Weight, tbl_Inventory.CF, (tbl_Inventory.Weight*Balance) AS TotalWeight,    
(tbl_Inventory.CF*Balance) AS TotalCF, tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate, 
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut, tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory ON tbl_Vendors.vid = tbl_Inventory.VendorID) LEFT JOIN
tbl_ItemHistory ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum;
UNION ALL
SELECT tbl_Vendors.VendorName, tbl_Inventory.ItemNum, tbl_Inventory.Color, 
tbl_Inventory.InInventory, tbl_Inventory.OutInventory, 
(tbl_Inventory.Stocks+tbl_Inventory.InInventory-tbl_Inventory.OutInventory) AS Balance, 
tbl_Inventory.Weight, tbl_Inventory.CF, (tbl_Inventory.Weight*Balance) AS TotalWeight,    
(tbl_Inventory.CF*Balance) AS TotalCF, tbl_Inventory.NoteOrder, tbl_ItemHistory.orderDate, 
tbl_ItemHistory.POHistory, tbl_ItemHistory.InorOut, tbl_ItemHistory.Unit
FROM (tbl_Vendors INNER JOIN tbl_Inventory ON tbl_Vendors.vid = tbl_Inventory.VendorID) RIGHT  
JOIN tbl_ItemHistory ON tbl_Inventory.ItemNum = tbl_ItemHistory.ItemNum;

erreur: expression de la jointure pas pris en charge. Le premier morceau de code était bon pour la jointure externe gauche. j'ai essayé deux gauche rejoint et que travaillé. son juste de ne pas prendre mon droit de rejoindre...

N'a le DROIT de se JOINDRE à la pièce correctement par lui-même ... qui ne sont pas inclus dans l'UNION de TOUTES les requêtes?
Votre liste de champs inclure une expression AS Balance, puis tente de référence Balance dans expressions de champ: TotalWeight; et TotalCF. Laisser ces 2 jusqu'à ce que vous obtenez le reste de travail. Ce serait une honte si le message d'erreur est trompeur, et le véritable problème est le moteur db confond Balance est cette requête complexe.
Merci pour votre commentaire. J'ai essayé et ça na pas encore de travail mais à l'aide de votre raison, je suis allé pour prendre les inner join et cela a fonctionné, je suppose que l'accès cant handle trop réunit? pas trop sûr, mais je vais faire de séparer les points de vue puis faire un ensemble et j'espère que ça va être assez simple pour calculer merci!

OriginalL'auteur Wilson Kao | 2011-08-09