Как это, что это справедливо:Определение группы: из параметра -
ALTER PROCEDURE [StoredProcedure]
@abcID int = null -- optional param
SELECT columnJ, columnK, Count(eID) AS Num, Sum(OutXYZ) as TotalProdXYZ, Sum(RawXYZ) as TotalRawXYZ
FROM [v_ViewTable]
WHERE (@abcID IS NULL OR (abcID = @abcID))
GROUP BY columnJ, columnK
Но это бросает «columnJ недопустим в списке выбора, поскольку он не содержится ни в статистической функции или GROUP BY ".
ALTER PROCEDURE [StoredProcedure]
@abcID int = null -- optional param
-- if 0: Group by columnJ, columnK
-- else: Group by columnK, columnJ
, @Grouping int = null
SELECT columnJ, columnK, Count(eID) AS Num, Sum(OutXYZ) as TotalProdXYZ, Sum(RawXYZ) as TotalRawXYZ
FROM [v_ViewTable]
WHERE (@abcID IS NULL OR (abcID = @abcID))
GROUP BY
CASE WHEN @Grouping = 0 THEN columnJ ELSE columnK END
,CASE WHEN @Grouping = 0 THEN columnK ELSE columnJ END
Что случилось с моим заявлением CASE? В принципе, если @Grouping = 0, я хочу, чтобы группа была J, K, если что-то еще, это должно быть K, J
Заранее благодарим за любую помощь!
... Я забыл поставить «КАК НАЧАТЬ» в моем примере, но это в моем реальном коде в сервере SQL ... – blacksaibot
вы получите ошибка при передаче в NULL или при прохождении чего-либо? – scsimon