开发者

SQL [Hard query - to make or to avoid]

开发者 https://www.devze.com 2022-12-17 06:29 出处:网络
SELECT Name, ( NOT (ID_ListGroupParIzm IN (SELECT ID_Param FROM TbUserParam WHERE ID_User=:ID_User ) ) ) Visi
SELECT Name, 
       ( NOT (ID_ListGroupParIzm 
              IN (SELECT ID_Param 
                    FROM TbUserParam
                   WHERE ID_User=:ID_User
                 )
              )  
       ) Visi 
  FROM CfgListParIzm 
 WHERE ID_ListGroupParIzm=:ID_ListGroupParIzm

Errors :

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

added : I'll try to explain what I want with it.

I need a name from one table and a BOOL value for each No开发者_高级运维de wich will be false if ID_ListGroupParIzm IN (SELECT ID_Param FROM TbUserParam WHERE ID_User=:ID_User

And ID_ListGroupParIzm (from CfgListParIzm ) = ID_Param (from TbUserParam) forget to say :(

btw : looking like select can't return logics value . . . How to get my purpose then :(

added a try :

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

error : Message 102, Level 15, State 1, line 6 Incorrect syntax near the construction ":".

But ... sure >_< I need to remake it as a Procedure, Thank you.


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

精彩评论

暂无评论...
验证码 换一张
取 消