SQL Server 2008:关键字“ AS”附近的语法不正确

用户999999

我继承的程序有问题。我需要调整查询,但查询不再起作用。

这是我得到的查询(不要判断我,这不是我的查询:))

SELECT     
   SUM(DATEDIFF(day, verz1.BeginDatumAW, verz1.EindDatumAW) + 1) AS AantalDagen,    
   verz1.CodeBedrijf, verz1.CodeAfdeling, verz1.CodeSectie,
   (SELECT TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
    FROM PEBSectie
    WHERE (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = '00')) AS BSNS,
   (SELECT TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
    FROM PEBSectie AS PEBSectie_1
    WHERE (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = '00')) AS AFD,
   (SELECT TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
    FROM PEBSectie AS PEBSectie_1
    WHERE (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = verz1.CodeGroep) AND (CodeSectie = '00')) AS GRP,
   (SELECT TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
    FROM PEBSectie AS PEBSectie_1
    WHERE (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = verz1.CodeGroep) AND (CodeSectie = verz1.CodeSectie)) AS SEC
FROM         
    Verzorging AS verz1 
LEFT OUTER JOIN
    AangepastWerk AS aw1 ON verz1.VerzorgingId = aw1.VerzorgingId
WHERE     
    (verz1.EindDatumAW <= @EndDate) AND 
    (verz1.BeginDatumAW >= @StartDate) AND 
    (aw1.Verwijderd = 0) AND               <------------ First statement added
    (aw1.NietErkend = 0 OR aw1.NietErkend IS NULL) AND 
    (DATEDIFF(day, verz1.BeginDatumAW, verz1.EindDatumAW) > 0))
GROUP BY 
     verz1.CodeBusiness, verz1.CodeBedrijf, verz1.CodeAfdeling, verz1.CodeGroep, 
     verz1.CodeSectie, verz1.TypeAWOfWO, verz1.TypeOngeval
HAVING      
     (verz1.TypeAWOfWO = 'A') AND (verz1.TypeOngeval = 'AO') OR
     (verz1.TypeAWOfWO = 'Arbeidsongeval') OR
     (verz1.TypeAWOfWO = 'arbeidsongeval')
UNION ALL
SELECT     SUM(DATEDIFF(day, @StartDate, verz1.EindDatumAW) + 1) AS AantalDagen, verz1.CodeBedrijf, verz1.CodeAfdeling, verz1.CodeSectie,
                      (SELECT     TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
                        FROM          PEBSectie AS PEBSectie_3
                        WHERE      (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = '00')) AS BSNS,
                      (SELECT     TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
                        FROM          PEBSectie AS PEBSectie_1
                        WHERE      (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = '00')) AS AFD,
                      (SELECT     TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
                        FROM          PEBSectie AS PEBSectie_1
                        WHERE      (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = verz1.CodeGroep) AND 
                                               (CodeSectie = '00')) AS GRP,
                      (SELECT     TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
                        FROM          PEBSectie AS PEBSectie_1
                        WHERE      (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = verz1.CodeAfdeling) AND (CodeGroep = verz1.CodeGroep) AND 
                                               (CodeSectie = verz1.CodeSectie)) AS SEC
FROM         Verzorging AS verz1 LEFT OUTER JOIN
                  AangepastWerk AS aw1 ON verz1.VerzorgingId = aw1.VerzorgingId
WHERE     (verz1.EindDatumAW <= @EndDate) 
AND (verz1.EindDatumAW >= @StartDate) 
AND (verz1.BeginDatumAW < @StartDate) 
AND (aw1.Verwijderd = 0)                   <------------ Second statement added
AND (aw1.NietErkend = 0 OR aw1.NietErkend IS NULL) 
AND (DATEDIFF(day, verz1.BeginDatumAW, verz1.EindDatumAW) > 0)
GROUP BY verz1.CodeBusiness, verz1.CodeBedrijf, verz1.CodeAfdeling, verz1.CodeGroep, verz1.CodeSectie, verz1.TypeAWOfWO, verz1.TypeOngeval
HAVING      (verz1.TypeAWOfWO = 'A') AND (verz1.TypeOngeval = 'AO') OR
                  (verz1.TypeAWOfWO = 'Arbeidsongeval') OR
                  (verz1.TypeAWOfWO = 'arbeidsongeval')

更改:在两个where语句中,我都添加了以下行:

 AND (aw1.Verwijderd = 0)

添加完之后,我继续遇到以下子查询的问题(对于每个子查询,我都会遇到相同的错误)。

(SELECT     TOP (1) RTRIM(OmschrijvingSectie) AS Expr1
                        FROM          PEBSectie AS PEBSectie_3
                        WHERE      (CodeBusiness = verz1.CodeBusiness) AND (CodeAfdeling = '00')) AS BSNS,

我得到的错误是:

消息156,级别15,状态1,第28行
关键字“ AS”附近的语法错误。

我似乎无法弄清楚我做了什么/出了什么问题。我希望一双新鲜的眼睛可能会看到我想念的东西。

注意:该错误仅在UNION ALL之后发生

感谢您的耐心配合

亲切的问候

编辑:如果可能的话:要避免对该查询进行重大修改。

用户999999

每个人,

感谢您一直以来为我的问题投入的精力。一双新鲜的眼睛(甚至是一双非IT眼睛的眼睛)都突然发现了问题所在。第一个查询(where语句)中的括号过多

 (DATEDIFF(day, verz1.BeginDatumAW, verz1.EindDatumAW) > 0)) 

最后一个括号不应该在那里。我对错误消息视而不见,并在第二个查询中寻找问题。旧的查询如何仍然设法产生有效的结果(即使使用无效的语法)仍然让我感到困惑。查询本身将被重写以避免进一步的问题。

再次感谢您

亲切的问候

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL Server中关键字“ DECLARE”附近的语法不正确

来自分类Dev

删除查询SQL Server中关键字'INNER'附近的语法不正确

来自分类Dev

SQL Server 创建触发器:关键字“IF”附近的语法不正确

来自分类Dev

关键字“用户”附近的语法不正确-如何编写查询-VB.net和SQL Server

来自分类Dev

')'SQL SERVER附近的语法不正确

来自分类Dev

SQL Server:“@”附近的语法不正确

来自分类Dev

从SQL Server 2005到2008时,“'索引'附近的语法不正确”

来自分类Dev

为什么我将这种“关键字'between'附近的不正确语法”转化为使用之间的SQL Server查询?

来自分类Dev

Visual Studio 2017 C# 中的本地 SQL Server 数据库(关键字“FROM”附近的“语法不正确”)

来自分类Dev

关键字“ Table” C#SQL附近的语法不正确

来自分类Dev

用户定义的函数sql,关键字“ return”附近的语法不正确

来自分类Dev

SQL Multiple Joins返回错误“关键字'JOIN'附近的语法不正确”。

来自分类Dev

SQL Multiple Joins返回错误“关键字'JOIN'附近的语法不正确”。

来自分类Dev

用户定义的函数sql,关键字“ return”附近的语法不正确

来自分类Dev

sql错误-“关键字'WHERE附近的语法不正确”

来自分类Dev

migrationBuilder 中的 SQL 关键字附近的语法不正确

来自分类Dev

关键字 CASE(SQL 函数)附近的语法不正确

来自分类Dev

T SQL 更新使用 LAG 关键字“FROM”附近的语法不正确

来自分类Dev

'JSON'附近的语法不正确-SQL Server 2016

来自分类Dev

SQL Server''。'附近的语法不正确的异常。'?

来自分类Dev

SQL SERVER sp_executesql'''附近的语法不正确

来自分类Dev

','附近的语法不正确。SQL Server和C#

来自分类Dev

SQL Server'11'附近的语法不正确

来自分类Dev

SQL Server 08')'附近的语法不正确

来自分类Dev

SQL Server 2014的IIF``附近语法不正确''错误

来自分类Dev

SQL Server“附近的语法不正确” WHERE语句

来自分类Dev

'0'附近的语法不正确。(Microsoft SQL Server)

来自分类Dev

'/' 附近的语法不正确。在 SQL Server 2012 中

来自分类Dev

SQL Server 错误:“'xyz' 附近的语法不正确”

Related 相关文章

  1. 1

    SQL Server中关键字“ DECLARE”附近的语法不正确

  2. 2

    删除查询SQL Server中关键字'INNER'附近的语法不正确

  3. 3

    SQL Server 创建触发器:关键字“IF”附近的语法不正确

  4. 4

    关键字“用户”附近的语法不正确-如何编写查询-VB.net和SQL Server

  5. 5

    ')'SQL SERVER附近的语法不正确

  6. 6

    SQL Server:“@”附近的语法不正确

  7. 7

    从SQL Server 2005到2008时,“'索引'附近的语法不正确”

  8. 8

    为什么我将这种“关键字'between'附近的不正确语法”转化为使用之间的SQL Server查询?

  9. 9

    Visual Studio 2017 C# 中的本地 SQL Server 数据库(关键字“FROM”附近的“语法不正确”)

  10. 10

    关键字“ Table” C#SQL附近的语法不正确

  11. 11

    用户定义的函数sql,关键字“ return”附近的语法不正确

  12. 12

    SQL Multiple Joins返回错误“关键字'JOIN'附近的语法不正确”。

  13. 13

    SQL Multiple Joins返回错误“关键字'JOIN'附近的语法不正确”。

  14. 14

    用户定义的函数sql,关键字“ return”附近的语法不正确

  15. 15

    sql错误-“关键字'WHERE附近的语法不正确”

  16. 16

    migrationBuilder 中的 SQL 关键字附近的语法不正确

  17. 17

    关键字 CASE(SQL 函数)附近的语法不正确

  18. 18

    T SQL 更新使用 LAG 关键字“FROM”附近的语法不正确

  19. 19

    'JSON'附近的语法不正确-SQL Server 2016

  20. 20

    SQL Server''。'附近的语法不正确的异常。'?

  21. 21

    SQL SERVER sp_executesql'''附近的语法不正确

  22. 22

    ','附近的语法不正确。SQL Server和C#

  23. 23

    SQL Server'11'附近的语法不正确

  24. 24

    SQL Server 08')'附近的语法不正确

  25. 25

    SQL Server 2014的IIF``附近语法不正确''错误

  26. 26

    SQL Server“附近的语法不正确” WHERE语句

  27. 27

    '0'附近的语法不正确。(Microsoft SQL Server)

  28. 28

    '/' 附近的语法不正确。在 SQL Server 2012 中

  29. 29

    SQL Server 错误:“'xyz' 附近的语法不正确”

热门标签

归档