SQL [сложный запрос - сделать или избежать] - PullRequest
3 голосов
/ 21 января 2010
SELECT Name, 
       ( NOT (ID_ListGroupParIzm 
              IN (SELECT ID_Param 
                    FROM TbUserParam
                   WHERE ID_User=:ID_User
                 )
              )  
       ) Visi 
  FROM CfgListParIzm 
 WHERE ID_ListGroupParIzm=:ID_ListGroupParIzm

Ошибки:

Message 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword "NOT".
Message 102, Level 15, State 1, Line 2
Incorrect syntax near the construction ":".

добавлено: Я постараюсь объяснить, что я хочу с ним.

Мне нужно имя из одной таблицы и значение BOOL для каждого узла, которое будет ложным, если ID_ListGroupParIzm IN (SELECT ID_Param FROM TbUserParam ГДЕ ID_User =: ID_User

И ID_ListGroupParIzm (от CfgListParIzm) = ID_Param (от TbUserParam) забудьте сказать: (

btw: похоже, что select не может вернуть значение логики. , , Как получить мою цель тогда: (

добавил попытку:

SELECT  Name,
        COALESCE(
        (
        SELECT  TOP 1 0
        FROM    TbUserParam
        WHERE   TbUserParam.ID_User = :ID_User
                AND TbUserParam.ID_Param = CfgListParIzm.ID_ListParIzm
        ), 1) Visi
FROM    CfgListParIzm
WHERE   CfgListParIzm.ID_ListGroupParIzm = :ID_ListGroupParIzm

ошибка: Сообщение 102, Уровень 15, Состояние 1, строка 6 Неверный синтаксис возле конструкции ":".

Но ... конечно> _ <Мне нужно переделать это как процедуру, спасибо. </p>

1 Ответ

2 голосов
/ 21 января 2010
SELECT  Name,
        COALESCE(
        (
        SELECT  TOP 1 0
        FROM    TbUserParam
        WHERE   ID_User = :ID_User
                AND ID_ListGroupParIzm = :ID_ListGroupParIzm
        ), 1) Visi
FROM    CfgListParIzm
WHERE   ID_ListGroupParIzm = :ID_ListGroupParIzm
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...