매우 비슷한 두 개의 테이블 반환 함수가 있습니다. 유일한 차이점은 두 번째 호출에서 Max()
호출이 하나 더 필요하다는 것입니다. 나는 이것들을 하나에 통합하고 싶지만 그것을하는 방법을 이해할 수 없다.테이블에있는 문이 값이있는 함수 인 경우
첫 번째 함수는 두 번째의 차이 나는 Max(AGGNumb) As AGGNumb
를 추가하고 그룹 총격 사건 중 하나를 제거하고있다 볼 수 있듯이
ALTER FUNCTION [DayTrade].[udf_GetTotalLast90Days]
(
@Date datetime
)
RETURNS TABLE
AS
RETURN
(
SELECT Acct, Sum(AGGCnt) As AGGCnt, AGGNumb
FROM DT.vwGet_CountHist
WHERE (PostDate >= @Date - 90) AND (PostDate <= @Date)
GROUP BY Acct, AGGNumb
)
두 번째 기능
ALTER FUNCTION [DayTrade].[udf_GetTotalLast90Days]
(
@Date datetime
)
RETURNS TABLE
AS
RETURN
(
SELECT Acct, Sum(AGGCnt) As AGGCnt, Max(AGGNumb) As AGGNumb
FROM DT.vwGet_CountHist
WHERE (PostDate >= @Date - 90) AND (PostDate <= @Date)
GROUP BY Acct
)
. 나는 이것을 바꾸고 추가 변수 @Agg를 비트 필드로 전달하여 IF statement
을 사용하여 사용할 함수를 선택했지만 작동시키지 못했습니다.
이 두 기능을 1로 통합하는 방법에 대한 제안 사항이 있으십니까?
감사
위의 코드를 업데이트했습니다. @bateDate가 아닌 where 절에 @Date가 있는데, 그 차이가 있습니까? – Taryn
+1. 내 방법보다 낫다. – Simon
@bluefeet : 어떤 쿼리를 실행할지 결정하기 위해서는 컨트롤 변수가 필요하다. 당신은 이것을 제어 할 수있는 2 개의 매개 변수를 가질 수도 있습니다. – gbn