Enfrentamos esse erro ao selecionar dados de mais de uma tabela juntando tabelas e pelo menos uma das colunas selecionadas (isso também acontecerá quando usar * para selecionar todas as colunas) existir com o mesmo nome em mais de uma tabela (nossas tabelas selecionadas/juntadas). Nesse caso, devemos especificar de qual tabela estamos selecionando a coluna.
A seguir está um exemplo de implementação de solução do conceito explicado acima
Acho que você tem ambiguidade apenas em
InvoiceID
que existe tanto em InvoiceLineItems
e Invoices
Outros campos parecem distintos. Então tente isso Acabei de substituir InvoiceID por 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
Você pode usar tablename.columnnae para todas as colunas (na seleção, onde, agrupar por e ordenar por) sem usar nenhum alias. No entanto, você pode usar um alias conforme guiado por outras respostas