现在我需要求的是针对这个注册日期,往前推4周内,累计他们的总销售。
假设aa在2/8/2023注册,我可以根据 Select dateadd(week,-4,[Enrollment Date]) 得知我需要的日期间隙是2023-01-11到2023-02-08。参考第二张表格也就是Fiscal year =2023 和Fiscal Week = 28/29/30/31的总和。所以aa的注册日期往前推4周的总和是25+5=30。
同理,如果是客人cc的话就是2022-06-17 到 2022-07-15之间,参考第二张表格Fiscal Calendar,也就是2022年度的第50周、51周、52周和2023年度第1周的销售总和,也就是3+5+10=18。
上传不了excel附件所以直接在这里复制表格了:
第一个表格:
Customer Site Enrollment Date Box of Sales Fiscal Year Fiscal Week
aa Guangzhou 2/8/2023 5 2022 5
aa Guangzhou 2/8/2023 6 2022 7
aa Guangzhou 2/8/2023 7 2023 11
aa Guangzhou 2/8/2023 14 2023 27
aa Guangzhou 2/8/2023 25 2023 28
aa Guangzhou 2/8/2023 5 2023 29
aa Guangzhou 2/8/2023 58 2023 33
aa Guangzhou 2/8/2023 2 2023 34
bb Guangzhou 2/8/2023 26 2022 5
bb Guangzhou 2/8/2023 7 2023 29
bb Guangzhou 2/8/2023 3 2023 30
bb Guangzhou 2/8/2023 3 2023 31
cc Shenzhen 7/15/2022 4 2022 49
cc Shenzhen 7/15/2022 3 2022 50
cc Shenzhen 7/15/2022 5 2022 51
cc Shenzhen 7/15/2022 10 2023 1
cc Shenzhen 7/15/2022 53 2023 3
第二个表格Fiscal Calendar我只复制了需要的数据:
Fiscal Year Fiscal Week Date
2022 48 6/1/2022
2022 48 6/2/2022
2022 48 6/3/2022
2022 48 6/4/2022
2022 49 6/5/2022
2022 49 6/6/2022
2022 49 6/7/2022
2022 49 6/8/2022
2022 49 6/9/2022
2022 49 6/10/2022
2022 49 6/11/2022
2022 50 6/12/2022
2022 50 6/13/2022
2022 50 6/14/2022
2022 50 6/15/2022
2022 50 6/16/2022
2022 50 6/17/2022
2022 50 6/18/2022
2022 51 6/19/2022
2022 51 6/20/2022
2022 51 6/21/2022
2022 51 6/22/2022
2022 51 6/23/2022
2022 51 6/24/2022
2022 51 6/25/2022
2022 52 6/26/2022
2022 52 6/27/2022
2022 52 6/28/2022
2022 52 6/29/2022
2022 52 6/30/2022
2022 52 7/1/2022
2022 52 7/2/2022
2023 1 7/3/2022
2023 1 7/4/2022
2023 1 7/5/2022
2023 1 7/6/2022
2023 1 7/7/2022
2023 1 7/8/2022
2023 1 7/9/2022
2023 2 7/10/2022
2023 2 7/11/2022
2023 2 7/12/2022
2023 2 7/13/2022
2023 2 7/14/2022
2023 2 7/15/2022
2023 2 7/16/2022
2023 3 7/17/2022
2023 3 7/18/2022
2023 27 1/3/2023
2023 27 1/4/2023
2023 27 1/5/2023
2023 27 1/6/2023
2023 27 1/7/2023
2023 28 1/8/2023
2023 28 1/9/2023
2023 28 1/10/2023
2023 28 1/11/2023
2023 28 1/12/2023
2023 28 1/13/2023
2023 28 1/14/2023
2023 29 1/15/2023
2023 29 1/16/2023
2023 29 1/17/2023
2023 29 1/18/2023
2023 29 1/19/2023
2023 29 1/20/2023
2023 29 1/21/2023
2023 30 1/22/2023
2023 30 1/23/2023
2023 30 1/24/2023
2023 30 1/25/2023
2023 30 1/26/2023
2023 30 1/27/2023
2023 30 1/28/2023
2023 31 1/29/2023
2023 31 1/30/2023
2023 31 1/31/2023
2023 31 2/1/2023
2023 31 2/2/2023
2023 31 2/3/2023
2023 31 2/4/2023
2023 32 2/5/2023
2023 32 2/6/2023
2023 32 2/7/2023
2023 32 2/8/2023
2023 32 2/9/2023
2023 32 2/10/2023
DATEADD(WEEK, -4, 字段) 将指定日期往前推4周
假设你要在已知日期往前推4周求和,可以使用如下的 SQL 语句:
SELECT SUM(column_name)
FROM table_name
WHERE date_column BETWEEN DATE_SUB(known_date, INTERVAL 4 WEEK) AND known_date;
在上面的语句中,你需要将 column_name 替换为你要计算和的列名,table_name 替换为你要查询的表名,date_column 替换为包含日期信息的列名。known_date 则为已知的日期值,可以用字符串或者日期格式来表示。这个语句将计算 known_date 前4周内的数据,并返回求和的结果。
思路这么清晰,实现上有啥问题。
sum统计一下就好了。