Sql server 如何在表格udf中正确使用GROUPBY?

Sql server 如何在表格udf中正确使用GROUPBY?,sql-server,user-defined-functions,Sql Server,User Defined Functions,我正在尝试创建一个表格UDF,它接受开始日期和结束日期,然后显示每个员工在该期间赚取的佣金。 我在这里尝试过,但是在employeeId附近出现了错误的语法 create Function CommissionByDate(@start_d date,@end_d date) Returns table As Return ( Select Employee_ID ,sum(dbo.OfferCommission(Offer_value, Offer_date)) as Commission

我正在尝试创建一个表格UDF,它接受开始日期和结束日期,然后显示每个员工在该期间赚取的佣金。 我在这里尝试过,但是在employeeId附近出现了错误的语法

create Function CommissionByDate(@start_d date,@end_d date)
Returns table
As
Return
(
Select Employee_ID
  ,sum(dbo.OfferCommission(Offer_value, Offer_date)) as Commission 
from Campaign_Offer
where Acceptance_status = 'yes' And Offer_date >= @start_d And Offer_date <=   
@end_d group by Employee_ID

看起来您忘记了按员工ID关闭组后的括号


这工作

看起来不错。除了中间的那个标量函数。从句法上来说,这似乎很好。我对标量函数的评论是因为从性能的角度来看,它们是出了名的差。你的select语句的开头似乎有一个额外的括号,应该去掉。我觉得自己太愚蠢了……谢谢你,伙计……我甚至没看到括号
CREATE FUNCTION CommissionByDate
(
    @start_d DATE
    , @end_d DATE
)
RETURNS TABLE
AS
RETURN (
    SELECT Employee_ID, sum(dbo.OfferCommission(Offer_value, Offer_date)) AS Commission
    FROM Campaign_Offer
    WHERE Acceptance_status = 'yes'
        AND Offer_date >= @start_d
        AND Offer_date <= @end_d
    GROUP BY Employee_ID
    )