Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Microsoft SQL Server错误102_Sql_Sql Server_Tsql - Fatal编程技术网

Microsoft SQL Server错误102

Microsoft SQL Server错误102,sql,sql-server,tsql,Sql,Sql Server,Tsql,我正在执行下面的查询,它给了我 SELECT t1.s_reference "Section", t2.m_reference "CourseRef", t2.m_name "CourseName", t3.mi_q02m02 "Aim", t2.m_level "Level", t2.m_start "Start", t2.m_end "End", t2.m_projstudents "Target", COUNT(DISTINCT t4.e_id) "En

我正在执行下面的查询,它给了我

SELECT
  t1.s_reference "Section",
  t2.m_reference "CourseRef",
  t2.m_name "CourseName",
  t3.mi_q02m02 "Aim",
  t2.m_level "Level",
  t2.m_start "Start",
  t2.m_end "End",
  t2.m_projstudents "Target",
  COUNT(DISTINCT t4.e_id) "Enrolled"
FROM
  isr t3,
  person t5,
  department t6,
  section t1,
  enrolment t4,
  course t2
WHERE
  t3.mi_id(+)=t2.m_id
  AND t4.e_module=t2.m_id
  AND t4.e_student=t5.p_id
  AND(t2.m_status LIKE '%%'||SUBSTR((TO_CHAR(sysdate,'YYYY')+DECODE(least(to_number(TO_CHAR(sysdate,'mm')),8),8,0,-1)),-2,2) ||'%%')
  AND t2.m_reference LIKE 'LL%%'
  AND t4.e_status IN('C','S')
  AND to_date(t2.m_start,'DD-Mon-RRRR')<=to_date(sysdate,'DD-Mon-RRRR')
  AND to_date(t2.m_end,'DD-Mon-RRRR')>=to_date(sysdate,'DD-Mon-RRRR')
  AND t2.m_modulesection=t1.s_id
  AND t2.m_moduledept=t6.d_id
  AND NVL(t2.m_close,0)=0
  AND t3.mi_q02m02 IS NOT NULL
  AND((
  CASE
    WHEN((t1.s_reference='LL2a')
      AND(t2.m_reference LIKE '%W%'))
    THEN 1
    ELSE 0
  END)=0)
  AND(t2.m_reference!='LL3036E15')
GROUP BY
  t1.s_reference,
  t2.m_reference,
  t2.m_name,
  t3.mi_q02m02,
  t2.m_level,
  t2.m_start,
  t2.m_end,
  t2.m_projstudents,
  t1.s_reference,
  t2.m_reference
ORDER BY
  t1.s_reference,
  t2.m_reference
我在sqldeveloper中运行了相同的查询,它运行得很好

我试图删除大部分括号,但仍然没有帮助。 知道为什么会这样吗

谢谢
Aruna

您正在尝试在Microsoft的SQL Server中运行为Oracle编写的查询。这些产品使用稍微不同的SQL方言,这是不兼容的。例如,
DECODE
NVL
TO_CHAR
在SQL Server中不可用。您必须使用SQL Server函数重新编写查询,以替换Oracle特定的查询(
CASE
COALESCE
CONVERT
,用于我提到的查询)。

第一步。。。将所有| |替换为单词或

第二步

和(t2.m_)状态,如 “%%”SUBSTR((TO_CHAR(sysdate,'YYYY')+解码(least(TO_number(TO_CHAR(sysdate,'mm')),8),8,0,-1)),-2,2) ||“%%”)

在哪里

||“%%”)

不是限定条件,可能与您已使用的条件无关

第三

t3.mi_id(+)=t2.m_id

你必须重写这个

第四

%%


只能是%

哪一行是问题行?(删除工作正常的代码,并保留尽可能小的问题查询。)(可能)与您的错误无关,但您应该切换到显式
join
语法,这是自1992年以来的标准!当然你会犯错误。您已经编写了Oracle代码,并且遇到了SQL Server错误。您应该使用SQL Server约定编写代码。将集中函数“| |”替换为“+”+,使用适当的
JOIN
。SQL Server中甚至不存在您使用的函数。我将| |替换为或,但我得到了无效的关系运算符错误太多东西无法转换为SQL Server语法,如| char等。您需要重写它们。
Incorrect syntax near ')'. MS SQL Server Error 102