Sql server 如何两次联接一个表,每个联接都有自己的别名?

Sql server 如何两次联接一个表,每个联接都有自己的别名?,sql-server,tsql,Sql Server,Tsql,所以我有下面的代码,尝试两次将不符合项表连接到EmplCode表,每个表都有一个不同的列,包含不符合项表及其自己的别名,因此我可以得到两个不同的EmplName字段,一个是EmplCode=EmplCode(别名a),另一个是EmplCode=ResponsibleMgr(别名b)。我下面的代码不起作用,子查询中有一个错误,我无法找出它。提前谢谢 SELECT CONVERT(DATE, a.NonConfDate) AS [NonConformance Date], a.ReturnT

所以我有下面的代码,尝试两次将不符合项表连接到EmplCode表,每个表都有一个不同的列,包含不符合项表及其自己的别名,因此我可以得到两个不同的EmplName字段,一个是EmplCode=EmplCode(别名a),另一个是EmplCode=ResponsibleMgr(别名b)。我下面的代码不起作用,子查询中有一个错误,我无法找出它。提前谢谢

SELECT
  CONVERT(DATE, a.NonConfDate) AS [NonConformance Date],
  a.ReturnType,
  a.LotNo AS [WorkCenter],
  LEFT(a.PartNo, 5) AS [OrderNo],
  a.PartNo,
  a.CustCode,
  a.VendCode,
  a.EmplName,
  a.PartDesc AS [Description],
  a.Disposition,
  b.EmplName,
  a.ProcessDate AS [DateResolved]
FROM
  ((SELECT * FROM NonConformance n LEFT JOIN EmplCode e ON n.EmplCode = 
  e.EmplCode) a 
  LEFT JOIN (SELECT * FROM NonConformance n LEFT JOIN EmplCode e ON 
  n.ResponsibleMgr = e.EmplCode) b)
ORDER BY a.NonConfDate DESC

代码中的错误是没有用ON子句连接表a和表b。删除外圆括号,如上文注释所述。您可以使用不符合项表的相同字段,并将其作为a.id=b.id进行联接

您是否尝试直接使用表而不是子查询。检查使用此as FROM条款的可能性

    FROM NonConformance n 
LEFT JOIN EmplCode e 
ON n.EmplCode = e.EmplCode 
LEFT JOIN EmplCode x 
ON n.ResponsibleMgr = x.EmplCode 
ORDER BY n.NonConfDate DESC

代码中的错误是没有用ON子句连接表a和表b。删除外圆括号,如上文注释所述。您可以使用不符合项表的相同字段,并将其作为a.id=b.id进行联接

您是否尝试直接使用表而不是子查询。检查使用此as FROM条款的可能性

    FROM NonConformance n 
LEFT JOIN EmplCode e 
ON n.EmplCode = e.EmplCode 
LEFT JOIN EmplCode x 
ON n.ResponsibleMgr = x.EmplCode 
ORDER BY n.NonConfDate DESC

只是去掉外圆括号不起作用的只是去掉外圆括号不起作用的我知道这必须比我正在做的要简单,谢谢。它就像你说的那样完美我知道它必须比我现在做的要简单,谢谢。它完全像你建议的那样工作