Versuchen Sie, diese
DECLARE @Tbl TABLE (d1 DATETIME, d2 DATETIME, d3 DATETIME, d4 DATETIME,d5 DATETIME, dm DATETIME)
INSERT INTO @Tbl
SELECT
'2015.05.06',
'2015.10.09',
'2015.01.06',
'2015.06.06',
'2015.08.06',
'2015.05.05'
SELECT
*,
(SELECT TOP 1 A.d
FROM
(
SELECT ABS(DATEDIFF(DAY, T.dm, T.d1)) a, T.d1 d union all
SELECT ABS(DATEDIFF(DAY, T.dm, T.d2)) a, T.d2 d union all
SELECT ABS(DATEDIFF(DAY, T.dm, T.d3)) a, T.d3 d union all
SELECT ABS(DATEDIFF(DAY, T.dm, T.d4)) a, T.d4 d union all
SELECT ABS(DATEDIFF(DAY, T.dm, T.d5)) a, T.d5 d
) A ORDER BY A.a) ClosestDate
FROM
@Tbl T
Ergebnis
d1 d2 d3 d4 d5 dm ClosestDate
2015-05-06 2015-10-09 2015-01-06 2015-06-06 2015-08-06 2015-05-05 2015-05-06
brauchen Sie nur Datum oder auch Informationen, wenn es war d1 oder d4? – Whencesoever
Was ist die gewünschte Ausgabe? Sind diese wirklich in der gleichen Reihe gespeichert? –
2015.05.06 in obigem Fall – bill