Чтобы использовать агрегирующие функции, такие как MIN (), нужно сгруппировать по столбцам, которые вы не агрегируете ...
Select
Min(S_Date)
, Col1
, Col2
From
(
Select Dateadd(whatever) as S_Date, Userid
from tbl1 as t
where S_Date >'today'
)
GROUP BY
Col1,
Col2
Если вы хотите, чтобы неагрегированные столбцы были условными, вы сновасгруппировать по этим условным значениям ...
Select
Min(S_Date)
, CASE WHEN col3 = 'doit' THEN Col1 ELSE Col2 END AS conditional_field
From
(
Select Dateadd(whatever) as S_Date, Userid
from tbl1 as t
where S_Date >'today'
)
GROUP BY
CASE WHEN col3 = 'doit' THEN Col1 ELSE Col2 END
Я не уверен на 100%, чего вы на самом деле хотите достичь.У вас есть примерный набор данных с желаемыми результатами и объяснением того, как результаты связаны с источником?