Hi @Mythbuster
Please check this:
CREATE TABLE #Test(ID INT IDENTITY(1,1),T1 DATE,T2 DATE,T3 DATE,Supplier1 INT,Supplier2 INT,Supplier3 INT,Supplier4 INT,Supplier5 INT,Supplier6 INT)
INSERT INTO #Test (T1,T2,T3,Supplier1,Supplier2,Supplier3 ,Supplier4 ,Supplier5 ,Supplier6)VALUES
('2018/1/23','2018/1/23','2018/1/23',150,193,203,283,349,362),
('2015/2/15','2015/2/17','2015/2/21',200,234,300,326,345,360),
('2014/3/12','2014/3/14','2014/3/19',250,317,360,396,423,462)
--SELECT * FROM #Test
;WITH CTE1 AS
(
SELECT ID,T.*,ROW_NUMBER()OVER(PARTITION BY ID ORDER BY T.Date DESC)AS Date_RNum
FROM #Test CROSS APPLY(VALUES(T1,'T1'),(T2,'T2'),(T3,'T3'))T(Date,Date_Column)
),CTE2 AS
(
SELECT ID,S.*,ROW_NUMBER()OVER(PARTITION BY ID ORDER BY S.Supplier DESC)AS Supplier_RNum
FROM #Test CROSS APPLY(VALUES(Supplier1, 'Supplier1'),
(Supplier2, 'Supplier2'),
(Supplier3, 'Supplier3'),
(Supplier4, 'Supplier4'),
(Supplier5, 'Supplier5'),
(Supplier6, 'Supplier6'))S(Supplier,Supplier_Column)
)
SELECT C1.ID,C1.Date AS MAX_Date,C1.Date_Column,C2.Supplier AS MAX_Supplier,C2.Supplier_Column
FROM CTE1 C1 JOIN CTE2 C2 ON C1.ID=C2.ID
WHERE Date_RNum=1 AND Supplier_RNum=1
Best regards,
LiHong
If the answer is the right solution, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
Note: Please follow the steps in our Documentation to enable e-mail notifications if you want to receive the related email notification for this thread.