Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.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
Sql 关键字“join”附近的语法不正确_Sql_Sql Server 2005 - Fatal编程技术网

Sql 关键字“join”附近的语法不正确

Sql 关键字“join”附近的语法不正确,sql,sql-server-2005,Sql,Sql Server 2005,我的以下查询导致错误: 关键字“join”附近的语法不正确 我不知道为什么它会导致那个错误 根据gordon的回答,我又为emp_添加了一个左连接,但它不起作用 我认为您想要的查询更像这样: Select top 1 a.mkey,emp_received , a.mkey, cd.type_desc as DOC_TYPE, a.doc_no as INWARD_NO, cr.type_desc as dept_received, cr.type_desc as

我的以下查询导致错误:

关键字“join”附近的语法不正确

我不知道为什么它会导致那个错误

根据gordon的回答,我又为emp_添加了一个左连接,但它不起作用


我认为您想要的查询更像这样:

Select top 1 a.mkey,emp_received , 
       a.mkey, cd.type_desc as DOC_TYPE,  a.doc_no as INWARD_NO,
       cr.type_desc as dept_received, cr.type_desc as EMP_RECEIVED,   
       convert(varchar(255), a.doc_date,103) as date,
       a.to_user, a.No_of_pages, Ref_No, 
       e.emp_name as NAME, 
       coalesce(e.Email_Id_Official, 'test@test.com') as EMAILID   
from inward_doc_tracking_hdr a left join
     type_mst_a cd
     on a.doc_type = cd.master_mkey left join
     type_mst_a cr
     on a.dept_received = cr.master_mkey left join
     emp_mst e
     on a.emp_received = e.mkey 
where a.emp_received is not null and 
      a.mkey = (select mkey
                from inward_doc_tracking_hdr aa
                where doc_no = 'IW/16/97'
               );
注:

直接的问题是左连接和左连接。and导致语法错误。 您有两个具有相同别名的表。这是不允许的。 您需要注意哪些列来自哪些表;我猜得很好。 无论何时在SQL Server中使用varchar,都必须包含长度。默认长度因上下文而异,如果您懒惰,可能在某个时候遇到难以调试的错误。 定义列别名时用作。
和left join:这不是SQL构造。通过删除并仍然获得错误,这是由于a.emp\u received=qr.master\u mkey上的left join类型导致的。您指的是qr,您可能指的是cr。请参阅Gordon的代码。@HoneyBadger:也尝试过cr,但仍然不起作用。请更具体一些。“不工作”是什么意思?你有错误吗?如果是,你的错误是什么?我没有一个水晶球告诉我你的查询是如何运行的。我想为emp_received再添加一个desc,所以我可以在a.doc_type=cd.master_mkey left join type_mst_a crsee我的问题了解更多更新,我尝试了一个参数,但没有working@NK . . . 我不确定新的查询应该做什么。你应该问一个新问题。
Select top 1 a.mkey, 
            cd.type_desc as DOC_TYPE,  a.doc_no as INWARD_NO,
           cr.type_desc as DEPT_RECEIVED, qr.type_desc as EMP_RECEIVED,   
           convert(varchar(255), a.doc_date,103) as date,
           a.to_user, a.No_of_pages, Ref_No, 
           e.emp_name as NAME, 
           coalesce(e.Email_Id_Official, 'test@test.com') EMAILID   
    from inward_doc_tracking_hdr a left join
         type_mst_a cd
         on a.doc_type = cd.master_mkey left join
         type_mst_a cr     
         on a.emp_received = qr.master_mkey left join
         type_mst_a st
         on a.dept_received = cr.master_mkey left join
         emp_mst e
         on a.emp_received = e.mkey 
    where a.emp_received is not null and 
          a.mkey = (select mkey
                    from inward_doc_tracking_hdr aa
                    where doc_no = 'IW/16/97'
                   );
Select top 1 a.mkey,emp_received , 
       a.mkey, cd.type_desc as DOC_TYPE,  a.doc_no as INWARD_NO,
       cr.type_desc as dept_received, cr.type_desc as EMP_RECEIVED,   
       convert(varchar(255), a.doc_date,103) as date,
       a.to_user, a.No_of_pages, Ref_No, 
       e.emp_name as NAME, 
       coalesce(e.Email_Id_Official, 'test@test.com') as EMAILID   
from inward_doc_tracking_hdr a left join
     type_mst_a cd
     on a.doc_type = cd.master_mkey left join
     type_mst_a cr
     on a.dept_received = cr.master_mkey left join
     emp_mst e
     on a.emp_received = e.mkey 
where a.emp_received is not null and 
      a.mkey = (select mkey
                from inward_doc_tracking_hdr aa
                where doc_no = 'IW/16/97'
               );