我有两个表基于它们之间的公共表连接,当一个案例条件满足时,我需要输出中两个表中的一个列。我看到两列都返回了各自的记录,但我发现了一个问题。我看到重复,我不确定我在这里做错了什么。随附图片,其中包含更多详细信息。
答案 0 :(得分:2)
您需要使用聚合函数和GROUP BY
:
SELECT d.docnum DocNumber,
e.empnam EmpName,
MAX(CASE
WHEN t.EmpTypID = '4' THEN e.EmpID
END) EmpID,
MAX(CASE
WHEN t.EmpTypID = '2' THEN e.EmpID
END) EmpAltID
FROM DocTable d
LEFT JOIN EmpTable e
ON d.docnum = e.docnum
LEFT JOIN TypeTable t
ON e.docnum = t.docnum
GROUP BY d.docnum,
e.empnam
;
答案 1 :(得分:0)
尝试分组
Select
........
........
max(CASE
WHEN t.EmpTypID = '4' THEN e.EmpID
END) EmpID,
.........
GROUP BY d.docnum,
e.empnam
;