Sql 从两个不同的表中检索最大日期记录
表1-账户Sql 从两个不同的表中检索最大日期记录,sql,Sql,表1-账户 ID account date ----------------------- 1 SBI 01-10-2005 2 SBI 05-11-2014 3 AXIS 02-06-2003 4 AXIS 01-08-2015 表2-用户 从以上两个表中,需要的最终输出为 ID account date user ----------------------------------- 2 SBI
ID account date
-----------------------
1 SBI 01-10-2005
2 SBI 05-11-2014
3 AXIS 02-06-2003
4 AXIS 01-08-2015
表2-用户
从以上两个表中,需要的最终输出为
ID account date user
-----------------------------------
2 SBI 05-11-2014 rahul
4 AXIS 01-08-2015 sumit
您可以通过按帐户对第一个表中的值进行分组来获取每个帐户的最大日期。然后,一旦有了最大日期,就只需要返回到用户表以获得相应的帐户
select tblUser.*
from
(
select account, max(date) as maxDate
from tblAccount
where account in ('SBI','AXIS')
group by account
) maxDates
left join tblUser u on maxDates.account = tblUser.account
因为我是初学者,所以无法完成此查询。您的查询与您前面提到的表无关。它既不使用account表也不使用user表,而是使用您未显示的类似card\u account\u表的表。没问题,我的答案中的查询应该可以工作。它将提取每个帐户分组的最大日期,然后将其加入到用户表中以获取与之关联的用户it@code,感谢您的输入,但如果表用户不包含ACCOUNT列,并且我想获取子句中给出的特定帐户,即“SBI”中的where tbluse.ACCOUNT,该怎么办,“AXIS”表中有这么多账户……如果您能在这方面帮助我,我将不胜感激最终输出将与我在问题>中发布的结果相同,如果您只需要“SBI”和“AXIS”中的帐户,那么您可以按帐户类型筛选子查询答案已更新。不确定tblUser不包含account列是什么意思,因为您的问题中有一个tblUser的account列?假设tblUser不包含account列,并以此为基础进行查询。但是有了这个outputsort,您将如何加入它?这张桌子看起来像什么?
select tblUser.*
from
(
select account, max(date) as maxDate
from tblAccount
where account in ('SBI','AXIS')
group by account
) maxDates
left join tblUser u on maxDates.account = tblUser.account