2017-02-05 6 views
2

У меня есть пример запроса в SQL Server 2016: напишите SQL-код, который будет показывать значения InvoiceNumber из таблицы INVOICE, которая включает значение ............. .Ошибка об «неоднозначном имени столбца»

Мне нужно объединить 3 таблицы. Это мой код:

SELECT 
    InvoiceNumber 
FROM 
    INVOICE AS I 
INNER JOIN 
    LINE_ITEM AS LI ON (I.InvoiceNumber = LI.InvoiceNumber) 
INNER JOIN 
    PRODUCT AS P ON (LI.ProductNumber = P.ProductNumber) 
WHERE 
    Description = 'Heather Sweeney Seminar Live in Dakkas on 25-OCT-09 - Video' 

и этот код всегда приводит к ошибке:

Неоднозначное имя столбца InvoiceNumber

на пункте WHERE в SELECT запросе

+2

Укажите, какой столбец выбрать, например. 'I.InvoiceNumber'. – jarlh

+0

Укажите более конкретное название. – buhtz

ответ

2

Всегда квалифицироваться все ваши имена столбцов в запросе, особенно если она имеет более чем одну таблицу:

SELECT I.InvoiceNumber 
FROM INVOICE AS I INNER JOIN 
    LINE_ITEM AS LI 
    ON I.InvoiceNumber = LI.InvoiceNumber INNER JOIN 
    PRODUCT P 
    ON LI.ProductNumber = P.ProductNumber 
WHERE P.Description = 'Heather Sweeney Seminar Live in Dakkas on 25-OCT-09 - Video' 

Если вы получаете в эту привычку, вы просто никогда не иметь такую ​​ошибку.

1

Если 2 таблицы имеют одинаковые столбцы, тогда вы должны указать в запросе, какой столбец вы хотите использовать. Сделайте это, добавив перед ним имя таблицы.

SELECT I.InvoiceNumber FROM INVOICE AS I ... 
+0

ОК, ЭТО РАБОТАЕТ СПАСИБО – Bopinko

 Смежные вопросы

  • Нет связанных вопросов^_^