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