Esta es la solución más correcta que encomtrarás dar, sin embargo estúdiala pausadamente y analiza si es compatible a tu proyecto.
Solución:
Enfrentamos este error cuando estamos seleccionando datos de más de una tabla uniendo tablas y al menos una de las columnas seleccionadas (también sucederá cuando use * para seleccionar todas las columnas) existe con el mismo nombre en más de una tabla (nuestra seleccionada). /mesas unidas). En ese caso, debemos especificar de qué tabla estamos seleccionando la columna.
A continuación se muestra una implementación de solución de ejemplo del concepto explicado anteriormente
Creo que tienes ambigüedad solo en InvoiceID
que existe tanto en InvoiceLineItems
y Invoices
Otros campos parecen distintos. Así que prueba esto
Acabo de reemplazar InvoiceID con Invoices.InvoiceID
SELECT
VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
FROM Vendors
JOIN Invoices ON (Vendors.VendorID = Invoices.VendorID)
JOIN InvoiceLineItems ON (Invoices.InvoiceID = InvoiceLineItems.InvoiceID)
WHERE
Invoices.InvoiceID IN
(SELECT InvoiceSequence
FROM InvoiceLineItems
WHERE InvoiceSequence > 1)
ORDER BY
VendorName, Invoices.InvoiceID, InvoiceSequence, InvoiceLineItemAmount
Puede usar tablename.columnnae para todas las columnas (en selección, dónde, agrupar por y ordenar por) sin usar ningún alias. Sin embargo, puede usar un alias guiado por otras respuestas
tienes una columna InvoiceID
en el Invoices
mesa y también en la InvoiceLineItems
mesa. No hay forma de que el motor de ejecución de consultas sepa cuál desea que se devuelva.
Agregar un alias de tabla ayudará:
SELECT V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
FROM Vendors V
JOIN Invoices I ON (...)
JOIN InvoiceLineItems IL ON (...)
WHERE ...
ORDER BY V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
Porque está uniendo dos tablas Invoices y InvoiceLineItems que contienen InvoiceID. cambie a Invoices.InvoiceID para que sea correcto.
Tienes la posibilidad dar recomendación a este enunciado si te fue de ayuda.