[英]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'
我正在嘗試以僅向我提供最近日期的記錄的方式來查詢它,但是卻很少引起混淆,因為我已經從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
將MAXDING()函數添加到日期列,並按所有列與所有其他列分組,以獲取所有其他列中值組合的最新日期。
我假設您想按dbo.Team.Date
進行過濾。
將您的WHERE
子句更改為:
WHERE (dbo.TeamName.idstatus = 'Active')
and (dbo.Team.Date=(select max(Date) from dbo.Team))
使用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.