运行此SQL语句时在SQL Server中出错

时间:2019-04-11 10:32:26

标签: sql-server

我遇到错误

  

')'附近的语法不正确

请找到我在这里运行的SQL查询-我无法找出错误所在。在SQL Server中,它指向最后一个结束括号。请帮忙。 正在编辑的sql现在给出另一个错误。 SELECT Crontaskname,        实例名称        时间表,        上一个 从(选择Crontaskname,              实例名称              时间表,              上一个              (当(((CASE(SUBSTRING(schedule,-(LEN(schedule)-(CHARINDEX(',',, schedule)-2)),1))                                  当's'THEN lastrun +(1/86400 * SUBSTRING(schedule,0,(CHARINDEX(',',schedule)-2)))+ 0.2                                  当'm'THEN lastrun +(1/1440 * SUBSTRING(schedule,0,(CHARINDEX(',',schedule)-2)))+ 0.2                                  当'h'THEN lastrun +(1/24 * SUBSTRING(schedule,0,(CHARINDEX(',',schedule)-2)))                                  当'd'THEN lastrun + SUBSTRING(schedule,0,(CHARINDEX(',',schedule)-2))                                  当'w'THEN lastrun +(7 * SUBSTRING(schedule,0,(CHARINDEX(',',schedule)-2)))                                  当'M'THEN DATEADD(MONTH,SUBSTRING(schedule,0,(CHARINDEX(',',schedule,',')-2)),lastrun)                                  当'y'THEN DATEADD(MONTH,12 *(SUBSTRING(schedule,0,(CHARINDEX(',',schedule,',')-2))),lastrun)                             END)-getdate())<0)                    然后“坏”                    其他“好”               END)AS状态        FROM(选择crontaskname,                     实例名称,                     时间表,                     (选择lastrun                      从任务计划程序AS B                      在哪里B.taskname = ISNULL(A.crontaskname,'')+'。'+ ISNULL(A.instancename,'')作为lastrun               来自crontaskinstance AS A               WHERE实例名称IN('SEQQOUT_SYS_11','SEQQOUT_SYS_21','SEQQOUT_SYS_12')                 AND活动= 1                 AND crontaskname <>'REPORTSCHEDULE')AS X)AS Cron WHERE Status ='BAD';

1 个答案:

答案 0 :(得分:0)

我发现了多个问题。

  • 表表达式中的表表达式(在crontaskinstance表上使用SELECT查询的表表达式)没有别名...如果给它命名别名,则似乎可以正确解析内容。
  • 内部CASE表达式中的WHEN块之一缺少右括号。
  • 字段sysdate未知。

就我所知...

正如@Larnu已经说过的那样……您确实需要格式化代码才能更快地获得这类错误。也许使用CTE也可能会有所帮助。

编辑:

我走得更远。出现错误“参数数据类型varchar对于charindex函数的参数3无效”。在这里,我放弃审查此查询。 ;)