我试图在按ID分组的日期中使用MAX函数找出两个日期之间的总金额。第365date列是sessiondate-364列的差值。目前,我使用此查询得到的是总金额,但我想找出这两个日期列(即365天)之间的金额。
这是我的疑问:
SELECT
DATEADD(day, -364, (MAX(sessiondate))) AS 365date,
MAX(sessiondate)) AS lastdate,
SUM(Amount) AS amount,
ID
FROM
tablename
WHERE
date BETWEEN 365date AND lastdate
GROUP BY
MemberID
日期|最后日期|金额|识别号|输出量(仅最近365天)|总额(全年)
2020年7月29日|2021年7月28日|一百|1个|一千五百|63000
2020年8月29日|二○二一年七月二十八日|五百|1
2020年2月5日|二○二一年七月二十八日|六百|1
2020年1月15日|二○二一年七月二十八日|三百|1
二○ ○ ○年十月十日|二○二一年七月二十八日|五万|1
一九八九年十月十日|二○二一年七月二十八日|一万|1
"所以需要带麦克斯(最后日期),即2021年7月28日,从中减去365天,然后取365天之间的所有天数(2020年7月29日、2020年8月29日、2020年5月2日、15/01/2020)并求和,显示在过去365天列中。对于totalamount(全年)列,需要添加所有金额,无论365天
逻辑:计算日期列(MAX(日期))-364
计算最后日期列Max(lastdate)
计算最后365金额列Sum(金额)Between(MAX(日期))-364 and Max(最后日期)
计算总额(全年)sum(金额)
有人能帮忙吗?
1条答案
按热度按时间vmpqdwk31#
您可以使用CTE,我已经将您的查询转换为CTE的where子句。