У меня проблема с ошибкой:
Столбец EXT_Design_Standard.Name недопустим в списке выбора, поскольку он не содержится ни в статистической функции, ни в предложении GROUP BY.
Я хочу сгруппировать записи на основе: cl.EXT_Design_Standard_ID
Я динамически отсортировал записи на основе (переменная sort @directionOfSort)
Кто-нибудь знает, как решить приведенную ниже проблему?
DECLARE @fieldSort varchar(50) = 'Date Changed'
DECLARE @directionOfSort varchar(1) = 'D'
SELECT min(cl.EXT_Design_Standard_ID) AS [EXT_Design_Standard_ID],
ds.Name AS [Standards Name],
ds.Reference_Code AS [Ref],
( SELECT dbo.EXFN_StripHTML(ds.Description) ) AS [Description],
(select replace(convert(varchar(20),cl.Change_On,106),' ','-')) + ' (' + CONVERT(VARCHAR(5) , cl.Change_On , 108)+ ')' AS [Date Changed],
FROM EXT_Design_Standard_Change_Log cl
INNER JOIN EXT_Design_Standard ds
on ds.EXT_Design_Standard_ID = cl.EXT_Design_Standard_ID
INNER JOIN Contact_Summary cs
on cs.Contact_ID = cl.Change_By
GROUP BY cl.EXT_Design_Standard_ID
ORDER BY
CASE WHEN @fieldSort ='Standards Name'
THEN ROW_NUMBER() over (order by ds.Name) *
case when @directionOfSort = 'A'
THEN 1 ELSE -1 END
END,
CASE WHEN @fieldSort ='Ref'
THEN ROW_NUMBER() over (order by ds.Reference_Code) *
case when @directionOfSort = 'A'
THEN 1 ELSE -1 END
END,
CASE WHEN @fieldSort ='Description'
THEN ROW_NUMBER() over (order by ( SELECT dbo.EXFN_StripHTML(ds.Description) )) *
case when @directionOfSort = 'A'
THEN 1 ELSE -1 END
END,
CASE WHEN @fieldSort ='Date Changed'
THEN ROW_NUMBER() over (order by cl.Change_On) *
case when @directionOfSort = 'A'
THEN 1 ELSE -1 END
END