【发布时间】:2011-03-04 20:11:40
【问题描述】:
我有 2 个非常相似的表值函数,唯一的区别是我需要在第二个函数上额外调用一个 Max()。我想将这些合并为一个,但我不知道该怎么做。
第一个函数
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
)
如您所见,第二个不同之处在于我添加了 Max(AGGNumb) As AGGNumb 并删除了其中一个 Group Bys。我试图改变它并传入一个额外的变量@Agg,它是一个位字段,然后使用IF statement 来选择要使用的函数,但我无法让它工作。
关于如何将这两个功能合二为一有什么建议吗?
谢谢
【问题讨论】:
标签: sql-server user-defined-functions