쉬운 것 같지만 이해할 수 없습니다. 이 데이터 세트를 가정합니다.
ID SID AddDate
1 123 1/1/2014
2 123 2/3/2015
3 123 1/4/2010
4 124
5 124
6 125 2/3/2012
7 126 2/2/2012
8 126 2/2/2011
9 126 2/2/2011
필요한 것은 가장 최근의 AddDate 및 각 SID에 대한 관련 ID입니다.
따라서 내 데이터 세트는 ID 2, 5, 6 및 7을 반환해야합니다.
나는 max (AddDate)를 시도했지만 그와 관련된 적절한 ID를 제공하지 않습니다.
내 SQL 문자열 :
SELECT First(Table1.ID) AS FirstOfID, Table1.SID, Max(Table1.AddDate) AS MaxOfAddDate
FROM Table1
GROUP BY Table1.SID;
각 Sid에 대한 최대 추가 날짜를 반환하는 하위 쿼리를 사용한 다음이 하위 쿼리를 데이터 세트 테이블에 다시 조인 할 수 있습니다.
SELECT
MAX(id)
FROM
ds INNER JOIN (
SELECT Sid, Max(AddDate) AS MaxAddDate
FROM ds
GROUP BY ds.Sid) mx
ON ds.Sid = mx.Sid AND (ds.AddDate=mx.MaxAddDate or MaxAddDate IS NULL)
GROUP BY
ds.Sid
MaxAddDate가 NULL 인 경우 (AddDate가 없음) 조인은 여전히 성공해야하며 일치하는 ID가 여러 개인 경우 가장 큰 ID를 원하는 것처럼 보입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다