Ошибка SQL-запроса - выражение не булева типа, указанное в содержимом, где ожидается условие - PullRequest
0 голосов
/ 18 ноября 2011

Кто-нибудь знает, что не так с этим запросом?Я пытаюсь выполнить внутреннее соединение с другой базой данных на том же сервере.

SELECT b.company, i.CONCOM, 
    COALESCE (SUM(CASE WHEN C.CATEGORY_ID = '30' THEN 0 ELSE t .LOGMINS END), 0) AS TotalWithoutNew, 
    COALESCE (SUM(t.LOGMINS), 0) AS TotalAllId
FROM helpdesk3.dbo.INQUIRY AS i
INNER JOIN [Check].[dbo].[tbl_companies] As B ON 
    i.CONCOM, B.company
INNER JOIN TIMELOG AS t ON 
    t.INQUIRY_ID = i.INQUIRY_ID 
INNER JOIN PROD AS P ON 
    i.PROD_ID =  P.PROD_ID
INNER JOIN CATEGORY AS C ON 
    P.CATEGORY_ID = C.CATEGORY_ID 
WHERE (DATEPART(yyyy, ESCDATE)  =2011)
GROUP BY i.CONCOM 
ORDER BY totalwithoutnew desc

Ответы [ 2 ]

4 голосов
/ 18 ноября 2011

Ваше первое присоединение

    INNER JOIN [Check].[dbo].[tbl_companies] As B ON 
        i.CONCOM, B.company

имеет список столбцов вместо предиката соединения. Вы, вероятно, имели в виду i.CONCOM = B.company.

Другая проблема может быть в вашем полном имени таблицы tbl_companies. Как указано в этой статье :

Для ссылки на столбец существует три варианта: полностью квалифицированный, частично квалифицированный и неквалифицированный. Полное имя (записывается как db_name.tbl_name.col_name) полностью указано. Частично определенное имя (записанное как tbl_name.col_name) ссылается на столбец в именованной таблице. Неквалифицированное имя (записываемое просто как col_name) относится к любой таблице, указанной в окружающем контексте.

0 голосов
/ 18 ноября 2011

Не правда ли это:

INNER JOIN [Check].[dbo].[tbl_companies] As B ON 
    i.CONCOM, B.company

Ypu должен иметь это:

INNER JOIN [Check].[dbo].[tbl_companies] As B ON 
    i.CONCOM = B.company
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...