私はあなたが他のグループを比較していると仮定して書いています。
DECLARE @priorGroup int = 8; -- Just change these two
DECLARE @currentGroup int = 61; -- numbers to compare other groups
WITH max_Dates AS (
SELECT MemberID,[Contract],[Group],MAX([Date]) AS 'Date'
FROM Table_1
WHERE [Group] IN (@priorGroup,@currentGroup)
GROUP BY MemberID,[Contract],[Group])
SELECT *
FROM max_Dates
WHERE [Group] = @priorGroup
UNION
SELECT TOP 1 MemberID,[Contract],[Group],MAX([Date]) AS 'Date'
FROM Table_1
WHERE [Group] = @priorGroup
AND
[Date] < (SELECT [Date]
FROM max_Dates
WHERE [Group] = @currentGroup)
GROUP BY MemberID,[Contract],[Group]
それとも、同じ行の日付
DECLARE @priorGroup int = 8;
DECLARE @currentGroup int = 61;
WITH max_Dates AS (
SELECT MemberID,[Contract],[Group],MAX([Date]) AS 'Date'
FROM Table_1
WHERE [Group] IN (@priorGroup,@currentGroup)
GROUP BY MemberID,[Contract],[Group])
SELECT MemberID,[Contract],[Group],
(SELECT TOP 1 MAX([Date]) AS 'Date'
FROM Table_1
WHERE [Group] = @priorGroup
AND
[Date] < (SELECT [Date]
FROM max_Dates
WHERE [Group] = @currentGroup)
GROUP BY MemberID,[Contract],[Group]) AS 'PriorMax',
(SELECT [Date]
FROM max_Dates
WHERE [Group] = @priorGroup) AS 'Current Max'
FROM max_Dates
WHERE [Group] = @priorGroup
を持つように、このいずれかを試すことができますそして、どのように我々はあなたがどの*最大*日付をしたいですか知っていることになっていますか? – Lamak
あなたは最新の2を望んでいますか? – Jason
ええ、ここでは正確に何をしたいですか?私はあなたが指定したものからはわかりません。なぜ(1、A、8)は2つで、(1、A、61)は1つのみですか?ここであなたの論理は何ですか? – pmbAustin