请解开一些SQL?

请解开一些SQL?,sql,sql-server,Sql,Sql Server,我正在尝试将Access查询迁移到SQL Server视图。我已经完成了Select部分,但是当我在FROM和WHERE中粘贴该部分时,我得到了一个“靠近“=”的语法错误”。我希望你们中的一位能够识别出那个错误(因为我无法识别) 首先格式化该SQL:) 最后一个“=True”看起来可疑-尝试删除它,并将其他True改为1。Yikes。回车和缩进要走很长的路;你应该找个时间试试。在ManagementStudio、VisualStudio等中管理代码时是否水平滚动。?另外,=True在SQL Se

我正在尝试将Access查询迁移到SQL Server视图。我已经完成了Select部分,但是当我在FROM和WHERE中粘贴该部分时,我得到了一个“靠近“=”的语法错误”。我希望你们中的一位能够识别出那个错误(因为我无法识别)


首先格式化该SQL:)


最后一个“=True”看起来可疑-尝试删除它,并将其他True改为1。

Yikes。回车和缩进要走很长的路;你应该找个时间试试。在ManagementStudio、VisualStudio等中管理代码时是否水平滚动。?另外,
=True
在SQL Server中无效-没有布尔数据类型。这些是
BIT
列吗?如果是,请尝试将
=True
更改为
=1
,将
=False
更改为
=0
。如果它们是字符串,请使用
='True'
='False'
。SQL Server没有布尔类型,=True将不起作用。Egads Access为其联接提供了可怕的语法。除了那些奇怪的括号外,我看不到有什么可以简化的。他们添加了什么有用的东西吗?Access并没有推广这种语法,它实际上是在写语法。这些正是我所做的动作,语法是有效的。
FROM   facility 
   INNER JOIN ((dbo.elmscoursereportlisttableaulink 
                INNER JOIN dbo.userlearningneeds 
                        ON dbo.elmscoursereportlisttableaulink.[item id] = 
                           dbo.userlearningneeds.[item id]) 
               INNER JOIN roster 
                       ON dbo.userlearningneeds.[user id] = 
              roster.[user id]) 
           ON facility.[abbr] = roster.[routing symbol] 
WHERE  ( ( ( dbo.elmscoursereportlisttableaulink.report ) = true ) 
     AND ( ( dbo.elmscoursereportlisttableaulink.active ) = true ) 
     AND ( ( 
   ( dbo.userlearningneeds.[revision number] = 
             dbo.elmscoursereportlisttableaulink.[revision number] ) 
    OR ( ( dbo.userlearningneeds.[revision number] ) IS NULL 
         AND ( dbo.elmscoursereportlisttableaulink.[revision number] ) IS 
             NULL 
       ) 
           ) = true ) );