SQL查询组合两个用户表,删除重复项并查找每个用户的最新更新条目

时间:2014-03-10 20:33:20

标签: sql inner-join user-defined-functions

我有两个SQL表。 TableA有一个活动用户列表,TableB列出了用户通过电子邮件提交并提交日期的所有帮助票据。

我需要输出表A和表A中存在的用户列表。表B(仅限表B中的用户)以及他们提交的上一个帮助凭单的日期。这是因为从活动用户表中删除了多个用户,但他们的帮助票仍保留在第二个表中。

表格字段:

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

1 个答案:

答案 0 :(得分:1)

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