SQL查询组合两个用户表,删除重复项并查找每个用户的最新更新项
我有两个SQL表。TableA有一个活动用户列表,TableB有一个用户通过电子邮件提交的所有帮助通知单列表和提交日期 我需要输出表a和表B中存在的用户列表(不包括表B中的用户)以及他们提交的最后一个帮助票证的日期。这是因为几个用户已从active users表中删除,但他们的帮助票证仍保留在第二个表中 表字段:SQL查询组合两个用户表,删除重复项并查找每个用户的最新更新项,sql,inner-join,user-defined-functions,Sql,Inner Join,User Defined Functions,我有两个SQL表。TableA有一个活动用户列表,TableB有一个用户通过电子邮件提交的所有帮助通知单列表和提交日期 我需要输出表a和表B中存在的用户列表(不包括表B中的用户)以及他们提交的最后一个帮助票证的日期。这是因为几个用户已从active users表中删除,但他们的帮助票证仍保留在第二个表中 表字段: eUser eUserName, eEmailAddress Work_Orders txtContactEmail, SubmitDate Desired output: eU
eUser
eUserName, eEmailAddress
Work_Orders
txtContactEmail, SubmitDate
Desired output:
eUserName, eEmailAddress, SubmitDate
我的尝试
SELECT eUser.eUserName
, eUser.eEMailAddress
, Work_Orders.txtContactEmail
, max(Work_Orders.dtRequest) lastupdate
FROM eUser inner join Work_Orders
on eUser.eEMailAddress = Work_Orders.txtContactEmail
group by eUser.eUserName
, eUser.eEMailAddress
, Work_Orders.txtContactEmail
但是,此查询运行时会返回表A和表B中存在的用户。我需要排除仅存在于表B中的用户。@GrimPython我不理解您的评论。表A是活动用户的列表。表B是帮助票的列表。许多用户已从TableA中删除,但他们的帮助票证未从表B中删除。我不想看到表B中已从TableA中删除的用户。@GrimPython,他们不会显示,因为这是一个
内部联接
是的,这是不正确的。可能发生的情况是,表A中有多个用户具有相同的电子邮件地址,因此复制了您的一些结果。@M.Ali,感谢您的帮助格式化,我似乎还没有掌握其中的诀窍。谢谢我花了一些时间才明白它是如何工作的。添加文本后,选择文本并单击格式选项卡中的[]
。)
SELECT A.eUserName,
A.eEmailAddress,
B.MaxSubmitDate
FROM TableA AS A
INNER JOIN (SELECT txtContactEmail, MAX(SubmitDate) MaxSubmitDate
FROM TableB
GROUP BY txtContactEmail) AS B
ON A.eEmailAddress = B.txtContactEmail