ken*_*com 2 sql sql-server sql-server-2005
标题可能没有多大意义,所以我将尝试在这个主题中描述.
考虑MSSQL2005中的2个表:
案例表:
id int,
caseNo string
Run Code Online (Sandbox Code Playgroud)
活动表:
id int,
caseID int,
eventDate date/time
Run Code Online (Sandbox Code Playgroud)
我需要一个视图的select语句,它将返回单行:cases.caseNo,events.eventDate(仅限日期部分)
它们与events.caseID = cases.id许多人相关联.每个案例记录有多个事件记录.我希望结果集caseNo与events.eventDate的最新/最新值一致.
提前致谢.
有五种方法可以执行此操作,这些方法在此处描述:包括聚合列的相关值
如果您需要的不仅仅是日期和案例ID,那么基本上就是这样
select e.*,c.*
from(
select caseID,max(evendate) as MaxEventDate
from Events
group by caseID) x
join Cases c on c.Id = x.caseID
join Events e on e.eventDate = x.MaxEventDate
and e.caseID = x.caseID
Run Code Online (Sandbox Code Playgroud)
否则只按ID分组并使用max作为日期
select max(e.EventDate) as MaxEventDate,
c.CaseNo
from
Cases c
join Events e on
e.caseid = c.id
group by c.caseNo
Run Code Online (Sandbox Code Playgroud)