例如:
SELECT [dbo].[fn_Days](@Account) + u.[DayRate],[dbo].[fn_Days](@Account) / u.[WorkDays] FROM [dbo].[tblUnit] u
所有fn_days都返回一个工作日的int.
SELECT t.[days] + t.[DayRate],t.[days] / t.[WorkDays] FROM ( SELECT [dbo].[fn_Days](@Account) as days,u.[DayRate],u.[WorkDays] FROM [dbo].[tblUnit] u) as t
这样fn_Days每行只调用一次,而不是像你提到的那样调用两次或六次.
希望这可以帮助.