我有两张桌子,比如A和B.
表:A
ID_Sender | Date
________________________
1 | 11-13-2013
1 | 11-12-2013
2 | 11-12-2013
2 | 11-11-2013
3 | 11-13-2013
4 | 11-11-2013
Run Code Online (Sandbox Code Playgroud)
表:B
ID | Tags
_______________________
1 | Company A
2 | Company A
3 | Company C
4 | Company D
Run Code Online (Sandbox Code Playgroud)
结果表:
Tags | Date
____________________________
Company A | 11-13-2013
Company C | 11-13-2013
Company D | 11-11-2013
Run Code Online (Sandbox Code Playgroud)
我已经用MAX(DATE)尝试了这个GROUP BY但是没有运气就失败了,我做了一些内部连接和子查询但是没能产生输出.
这是我到目前为止的代码,以及附加输出的图像.
SELECT E.Tags, D.[Date] FROM
(SELECT A.ID_Sender AS Sendah, MAX(A.[Date]) AS Datee
FROM tblA A
LEFT JOIN tblB B ON A.ID_Sender = B.ID
GROUP BY A.ID_Sender) C
INNER JOIN tblA D ON D.ID_Sender = C.Sendah AND D.[Date] = C.Datee
INNER JOIN tblB E ON E.ID = D.ID_Sender
Run Code Online (Sandbox Code Playgroud)
有什么建议?我已经拉出了我的头发!(也许你们可以给我一些有用的sql概念,答案不是必要的因为我真的很想自己解决它:))
谢谢!
SELECT Tags, MAX(Date) AS [Date]
FROM dbo.B INNER JOIN dbo.A
ON B.ID = A.ID_Sender
GROUP BY B.Tags
Run Code Online (Sandbox Code Playgroud)
结果
Company A November, 13 2013 00:00:00+0000
Company C November, 13 2013 00:00:00+0000
Company D November, 11 2013 00:00:00+0000
Run Code Online (Sandbox Code Playgroud)