2010-01-21 96 views
4
SELECT Name, 
     (NOT (ID_ListGroupParIzm 
       IN (SELECT ID_Param 
        FROM TbUserParam 
        WHERE ID_User=:ID_User 
       ) 
      ) 
     ) Visi 
    FROM CfgListParIzm 
WHERE ID_ListGroupParIzm=:ID_ListGroupParIzm 

错误:SQL [硬查询 - 做或避免]

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 ":". 

补充说: 我会尽力解释什么,我想用它。

我需要从一个表名和每个节点至极一个布尔值将是错误的,如果ID_ListGroupParIzm IN(SELECT ID_PARAM FROM TbUserParam WHERE ID_User =:ID_User

而且ID_ListGroupParIzm(从CfgListParIzm)= ID_PARAM(从TbUserParam) 忘了说:(

BTW:看起来像选择不能返回逻辑值 如何获得我的目的,然后:(

加一试:。

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 构造附近的语法错误“:”。

但是...确实> _ <我需要将它重新制作为过程,谢谢。

+0

为什么你在你的select子句中有NOT?你想做什么? – Paddy 2010-01-21 13:29:53

+0

添加到第一个问题:)对不起有点困惑 – Cynede 2010-01-21 13:30:51

回答

3
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 
+0

作品!非常感谢你 – Cynede 2010-01-21 14:08:31