2015-03-26 5 views
-2

Я получил этот SQLSQL ошибка имя Неоднозначное столбца

SELECT 
    COUNT_BIG (No_) AS [Antall ordre] 
FROM 
    dbo.[3S Company A_S$Warehouse Activity Header] 
INNER JOIN 
    dbo.[3S Company A_S$Sales Header] ON dbo.[3S Company A_S$Sales Header].[No_] = dbo.[3S Company A_S$Warehouse Activity Header].[Source No_] 
WHERE 
    dbo.[3S Company A_S$Warehouse Activity Header].[Destination No_] = '" & strSelskab & "' 
    AND dbo.[3S Company A_S$Warehouse Activity Header].[No_ Printed] > 0 

Я получаю сообщение об ошибке

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

Что это значит?

+0

Это означает, что у вас есть одно и то же имя столбца в нескольких таблицах, и вам нужно указать имя таблицы и имя столбца в этом случае. Сообщение о точном сообщении об ошибке должно содержать много информации. – LittleBobbyTables

+0

[Всегда указывайте правильные ссылки в таблице для каждого столбца] (http://blogs.sqlsentry.com/aaronbertrand/best-practices-referencing-columns/). –

ответ

0

Вероятно, нет никаких причин для подсчета имени столбца. Просто посчитайте все строки с помощью *:

SELECT COUNT_BIG(*) AS [Antall ordre] 
FROM dbo.[3S Company A_S$Warehouse Activity Header] ah NNER JOIN 
    dbo.[3S Company A_S$Sales Header] sh 
    ON sh.[No_] = ah.[Source No_] 
WHERE ah.[Destination No_] = '" & strSelskab & "' and 
     ah.[No_ Printed] > 0 

Обратите внимание на использование псевдонимов таблиц. Это также упрощает запись и чтение запроса.

+0

Хотя, вероятно, правильно, он * мог * предполагать, что должен быть подсчитан столбец с нулевым значением в правой таблице, что не обязательно даст тот же счет, что и *. –

0

Попытайтесь использовать псевдоним каждой таблицы, а затем выберите «alias.No_».