내가 이해한다면 당신은 정확하게, 주어진 ID에 대해 여러 날짜가있을 수 있으며 주어진 날짜에 대해 여러 텍스트가있을 수 있습니다.
당신은 SQL Server가
2005 나는이
DECLARE @Table TABLE(
ID INT,
DDATE DATETIME,
VAL VARCHAR(MAX)
)
INSERT INTO @Table (ID,DDATE,VAL) SELECT 1, '01 Jan 2009', '1'
INSERT INTO @Table (ID,DDATE,VAL) SELECT 1, '01 Feb 2009', '2'
INSERT INTO @Table (ID,DDATE,VAL) SELECT 1, '01 Feb 2009', '3'
INSERT INTO @Table (ID,DDATE,VAL) SELECT 2, '01 Jan 2009', '4'
SELECT ID,
DDATE,
VAL,
ROWNUMBER
FROM (
SELECT t.ID,
t.DDATE,
t.VAL,
ROW_NUMBER() OVER (PARTITION BY t.ID ORDER BY DDATE) ROWNUMBER
FROM @Table t INNER JOIN
(
SELECT ID,
MAX(DDATE) AS MAXDATE
FROM @Table
GROUP BY ID
) md ON t.ID = md.ID
AND t.DDATE = md.MAXDATE
) RowNumber
WHERE RowNumber.ROWNUMBER = 1
najmeddine 작업에 도착를 사용하는 경우, 모든 사람이 (2 회 MAX와) 마지막 쿼리가 개별적으로 표시되지 않는 결과를 실현 할 수있다 소스 테이블. MAX (텍스트) 값은 최신 날짜와 다른 날짜의 ID의 "텍스트"일 수 있습니다. 두 개의 최대 집계를 사용하여 얻는 것은 Id 값 당 하나의 행입니다. 하지만 원본 테이블에서 한 행을 얻지는 못합니다. 두 MAX 쿼리가 실제로 원하는 것입니다. –
@ 스티브, 내 대답의 마지막 부분 만 읽는 것 같습니다. 자세한 3 가지 경우 : - 그는 해당 Id & that에 해당하는 텍스트를 원합니다. MaxDate 2 (Id, MaxDate) 당 1 행 이상이 필요합니다. 괜찮지 않고 항상 1을 원하면 , 그는 Min 또는 Max를 사용할 수 있습니다. 3 그는 임의의 텍스트 ('텍스트의 값'이라고 말했습니다)를 원하고 Min 또는 Max를 사용할 수 있습니다. – manji