[英]Select Most Recent date
SELECT dbo.Team.ID, dbo.Team.Comment, dbo.Team.Date, dbo.TeamName.Name, dbo.Contacts.ContactName
FROM dbo.Team
INNER JOIN dbo.TeamName ON dbo.Team.ID = dbo.TeamName.id
INNER JOIN dbo.Contacts ON dbo.Team.ContactID = dbo.Contacts.ContactID
WHERE dbo.TeamName.idstatus = 'Active'
I am trying to query it in a way that it only gives me records with most recent date but it is getting little confusing because I am already pulling data from 3 tables and not sure how to use MAX(date)
here. 我正在尝试以仅向我提供最近日期的记录的方式来查询它,但是却很少引起混淆,因为我已经从3个表中提取数据了,不确定在这里如何使用
MAX(date)
。
SELECT dbo.Team.ID, dbo.Team.Comment, MAX(dbo.Team.Date) LatestDate, dbo.TeamName.Name, dbo.Contacts.ContactName
FROM dbo.Team
INNER JOIN dbo.TeamName ON dbo.Team.ID = dbo.TeamName.id
INNER JOIN dbo.Contacts ON dbo.Team.ContactID = dbo.Contacts.ContactID
WHERE dbo.TeamName.idstatus = 'Active'
GROUP BY dbo.Team.ID, dbo.Team.Comment, dbo.TeamName.Name, dbo.Contacts.ContactName
ADDING MAX() Function to your date column and group by all the columns with you the Latest date for the combination of values in all other columns. 将MAXDING()函数添加到日期列,并按所有列与所有其他列分组,以获取所有其他列中值组合的最新日期。
I'm assuming you want to filter by dbo.Team.Date
. 我假设您想按
dbo.Team.Date
进行过滤。
Change your WHERE
clause to: 将您的
WHERE
子句更改为:
WHERE (dbo.TeamName.idstatus = 'Active')
and (dbo.Team.Date=(select max(Date) from dbo.Team))
Use GroupBy and Having: 使用GroupBy并具有:
SELECT dbo.Team.ID, dbo.Team.Comment, MAX(dbo.Team.Date), dbo.TeamName.Name, dbo.Contacts.ContactName,
FROM dbo.Team
INNER JOIN
dbo.TeamName ON dbo.Team.ID = dbo.TeamName.id
INNER JOIN
dbo.Contacts ON dbo.Team.ContactID = dbo.Contacts.ContactID
WHERE (dbo.TeamName.idstatus = 'Active')
GROUP BY dbo.Team.ID, dbo.Team.Comment, dbo.Team.Date, dbo.TeamName.Name, dbo.Contacts.ContactName
HAVING dbo.Team.Date = MAX(dbo.Team.Date)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.