나는이 일을 성공적으로 수행하는 데 어려움을 겪었습니다.T-SQL은 다른 사람의 수에 기초하여 하나의 필드를 반환합니다.
계약 번호, 시작 날짜, 일련 번호 및 날짜 스탬프가 포함 된 테이블이 있습니다. 이들은 많은 것 : 많은 것.
내가 달성하고자하는 것은 고유 일련 번호가 가장 많은 각 개별 계약 번호의 시작 날짜와 해당 날짜가 유효한 최신 날짜 스탬프를 반환하는 것입니다.
이것은 T-SQL 전문가들에게 분명히 알 수 있듯이 일련 번호가 가장 큰 하나의 계약 번호 만 반환합니다. 아무도 내가 뭘 잘못하고 있다고 말할 수 있습니까?
SELECT TOP (1)
[Contract ID], [Item Begin Date] AS Start_Date,
COUNT([Serial Number]) AS CountSerials,
Datestamp
FROM
SourceTable
GROUP BY
[Contract ID], [Item Begin Date], Datestamp
HAVING
([Item Begin Date] > CONVERT(DATETIME, '1900-01-01 00:00:00', 102))
ORDER BY
CountSerials DESC, Datestamp DESC
건배, 알렉스
힌트 : CTE 및 row_number() 사용 –
사용중인 SQLServer의 버전은 무엇입니까? – Serpiton