쿼리를 기반으로 3 개의 변수를 설정하는 저장 프로 시저를 만들고 있는데 그 중 MAX
값을 반환해야합니다. 나는 그러나 다음 임시 테이블을 사용하지 않고 그렇게 시도하고 나에게 나는 또한SQL Server : 임시 테이블을 사용하지 않고 SELECT 문의 두 테이블을 UNION 할 수 있습니까?
SELECT MAX((SELECT @ContactPermission UNION ALL SELECT @GroupPermission))
을 시도 Incorrect styntax near ')'
SELECT MAX(PermissionID)
FROM (SELECT @ContactPermission As PermissionID UNION ALL
SELECT @GroupPermission As PermissionID)
오류를주고 내가 Cannot perform an aggregate function on an expression containing an aggregate or a subquery.
가 나는 또한이 오류를 얻을 변수를 우회하고 하위 쿼리에서 UNION
을 사용하려고 시도했습니다 ...
SELECT MAX(PermissionID)
FROM (SELECT PermissionID
FROM PermissionContact
WHERE ContactID = @ContactID
UNION ALL
SELECT PermissionID
FROM PermissionGroup
WHERE GroupID = @GroupID)
이것은 또한 제공합니다 Incorrect syntax near ')'
어떤 생각이나 제안? 임시 테이블이 유일한 옵션입니까?
... SO 톤, 나는 몇 분에 답변으로 표시합니다 감사합니다 나를시켜. – jon3laze
+1 또한'SELECT MAX (PermissionID) FROM (VALUES (@ContactPermission, @ContactPermission, @GroupPermission))을 사용할 수 있습니다. T (PermissionID)' –