Sql server SQL中最大月/年的总和值

Sql server SQL中最大月/年的总和值,sql-server,Sql Server,我有一个表(t_psg2_nav),其中包含相关列:fundnum、calcdate、return_active_daily,其中包含一组基金的活动收益时间序列。我想对最近一个月的每日退货金额进行合计。我有下面的代码,但它没有返回任何内容。不确定我是否在正确的轨道上,我如何做到这一点?具体的编码会很有帮助,因为我对这一点非常陌生: SELECT nav.fundnum AS 'Fund' ,sum(nav.return_active_daily) AS 'MTD

我有一个表(t_psg2_nav),其中包含相关列:fundnum、calcdate、return_active_daily,其中包含一组基金的活动收益时间序列。我想对最近一个月的每日退货金额进行合计。我有下面的代码,但它没有返回任何内容。不确定我是否在正确的轨道上,我如何做到这一点?具体的编码会很有帮助,因为我对这一点非常陌生:

SELECT      nav.fundnum AS 'Fund'
            ,sum(nav.return_active_daily) AS 'MTD Tracking'

FROM       t_psg2_nav nav

INNER JOIN  (SELECT fundnum
                    ,month(max(calcdate)) AS calcdate
                    ,return_active_daily
             FROM   t_psg2_nav
             GROUP BY fundnum, return_active_daily
             )
AS nav1 ON nav.fundnum = nav1.fundnum
AND nav.calcdate = nav1.calcdate

GROUP BY nav.fundnum

您的错误在子查询中;MONTH将返回表示月份的整数(即1-12)。当您使用语法(nav.calcdate=nav1.calcdate)加入时,没有日期等于“10”

请尝试以下方法:

SELECT  nav.fundnum AS 'Fund'
      , SUM(nav.return_active_daily) AS 'MTD Tracking'
FROM    t_psg2_nav nav
WHERE nav.calcdate >= DATEADD(MONTH, DATEDIFF(MONTH,0, SYSDATETIME()), 0)        
GROUP BY nav.fundnum 
假设你总是想要当月的回报率