/ / Depuración Declaración de unión externa ambigua - servidor sql, ms-access

Depuración de la declaración de unión externa ambigua - sql-server, ms-access

Soy nuevo en MS Office Access, tengo algunosProblemas al construir la vista SQL para esta consulta. Sigo recibiendo un error: "La instrucción SQL no se pudo ejecutar porque contiene una combinación externa ambigua. Para forzar que se realice una de las combinaciones, cree una consulta separada que realice la primera combinación e incluya esa consulta en su declaración SQL".

1) ¿Cómo creo una consulta separada en la vista de MS SQL e incluyo esa consulta en mi declaración SQL principal?

2) No puedo entender porque el error esta ocurriendo ??

SELECT [Table : PurchaseDetails].PurchaseID
FROM [Table: Supplier]
LEFT JOIN ([Table : Purchase]

LEFT JOIN ([Table : Product]

LEFT JOIN [Table : PurchaseDetails]

ON [Table : Product].ProductID = [Table : PurchaseDetails].ProductID)

ON [Table : Purchase].PurchaseID = [Table : PurchaseDetails].PurchaseID)

ON [Table: Supplier].SupplierID = [Table :   Purchase].SupplierID;

Respuestas

0 para la respuesta № 1

No estoy seguro de Access, pero en SQL el comando ON debe seguir a JOIN, así:

SELECT [Table : PurchaseDetails].PurchaseID
FROM [Table: Supplier]
LEFT JOIN [Table : Purchase]
ON [Table : Purchase].PurchaseID = [Table : PurchaseDetails].PurchaseID

LEFT JOIN [Table : Product]
ON [Table : Product].ProductID = [Table : PurchaseDetails].ProductID

LEFT JOIN [Table : PurchaseDetails]
ON [Table: Supplier].SupplierID = [Table :   Purchase].SupplierID;

0 para la respuesta № 2

¿Cómo creo una consulta separada en la vista de MS SQL e incluyo esa consulta en mi declaración SQL principal?

Tiene una consulta que involucra múltiples CONEXIONES IZQUIERDAS y el motor de base de datos no puede determinar exactamente cómo desea que se unan las tablas. Específicamente, ha determinado que lo hará (o podría) devuelven resultados diferentes dependiendo del orden en que aplique los JOIN.

Entonces, te está pidiendo que

  • crear una consulta utilizando solo un subconjunto de las tablas,

  • guardar esa consulta en Access, y luego

  • crear otra consulta que use la (s) otra (s) tabla (s) y la consulta guardada Para producir el resultado final.

Por ejemplo, puede crear la siguiente consulta y guardarla en Access como Purchase_PurchaseDetails

SELECT Purchase.PurchaseID, Purchase.SupplierID
FROM Purchase LEFT JOIN PurchaseDetails
ON Purchase.PurchaseID=PurchaseDetails.PurchaseID

Entonces podrías usar esa consulta en otro consulta, por ejemplo,

SELECT Supplier.SupplierID
FROM Suppliers LEFT JOIN Purchase_PurchaseDetails
ON Supplier.SupplierID=Purchase_PurchaseDetails.SupplierID

...O algo por el estilo.