A colleague asked about how to get maximum value from multiple columns. After searching it online, I found a pretty good way to get it, and thought it would be good to share here.
For example, I have a table with MemberID and 3 date fields. I want to get the last date from the 3 date fields for each MemberID.
The expected end result look like:
Creating the sample data:
Query to get the max for multiple columns:
For example, I have a table with MemberID and 3 date fields. I want to get the last date from the 3 date fields for each MemberID.
The expected end result look like:
Creating the sample data:
create table #member ( MemberID nvarchar(100), modifiedon datetime, deletedon datetime, addedon datetime )
insert into #member values ('M1', GETDATE(), GETDATE(), GETDATE())
insert into #member values ('M2', GETDATE()-1, GETDATE()-2, GETDATE()-3)
insert into #member values ('M3', GETDATE()-3, GETDATE()-2, GETDATE()-1)
Query to get the max for multiple columns:
SELECT
MemberID,
LastUpdateDate =
( SELECT MAX(LastUpdateDate)
FROM (VALUES (modifiedon),(deletedon),(addedon)) AS UpdateDate(LastUpdateDate)
)
FROM #member