我们说我有一张名字,每日收益和日期的表格
GainTable
NAME GAIN DATE
JOHN 10 01/01/2014
ISABEL 20 01/02/2014
VASILIY 10 01/01/2014
让我们说每个人每天都有收获。
我想找出每个人每月获得的收益
我是这样做的。
SELECT NAME, SUM(GAIN), MONTH(DATE)
FROM GainTable
group by Name, YEAR(DATE), MONTH(DATE)
现在,我的任务是像以前一样按月分组,但是从月的第2天开始,到下个月的第1天结束(例如,8月组将从8月2日到9月1日开始)。 我怎样才能做到这一点?任何建议都表示赞赏。
答案 0 :(得分:2)
尝试从真实的'中删除单个日期。一个月和那个月(和年)分组:
SELECT NAME,YEAR(DATEADD(D, -1, DATE)), MONTH(DATEADD(D, -1, DATE)), SUM(GAIN) Gain_Total
FROM GainTable
GROUP BY Name, YEAR(DATEADD(D, -1, DATE)), MONTH(DATEADD(D, -1, DATE))