如图,其实数据一直有从 2021/6/1 到 现在每日都会更新新的数据
想求出 按每周统计的话,计算出该表的数据 每一周,例如选取 - 周日 每7天的 客户X的一周7天内的【加权平均价格】 和 【简单平均到货量】。
结果例如(数据是虚拟的方便示意):
可以按下方数据以每周日为一周的结算条件,周日的日期为key
想求出 按每周统计的话,计算出该表的数据 每一周,例如选取 - 周日 每7天的 客户X的一周7天内的【加权平均价格】 和 【简单平均到货量】。
结果例如(数据是虚拟的方便示意):
可以按下方数据以每周日为一周的结算条件,周日的日期为key
--创建测试数据
create table test_20220926 (日期 date,
客户a实际到货量 int,客户a需求量 int,
客户b实际到货量 int,客户b需求量 int,
客户c实际到货量 int,客户c需求量 int,
客户a价格 int,客户b价格 int,客户c价格 int);
insert into test_20220926 values ('2021/8/21',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/22',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/23',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/24',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/25',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/26',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/27',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/28',1125,2500,8400,8000,2400,5000,3500,4600,5400);
insert into test_20220926 values ('2021/8/29',1125,2500,8400,8000,2400,5000,3500,4600,5400);
--确认当前设置的一周第一天是周几
select @@DATEFIRST;
--如果不是周一,则设置成周一
SET DATEFIRST 1;
--查询
select max(日期) 日期,
sum(客户a实际到货量)/7 客户a周平均到货量,
sum(客户a需求量)/7 客户a周平均需求量,
sum(客户a实际到货量*客户a价格)/sum(客户a实际到货量) 客户a加权平均价,
sum(客户b实际到货量)/7 客户b周平均到货量,
sum(客户b需求量)/7 客户b周平均需求量,
sum(客户b实际到货量*客户b价格)/sum(客户b实际到货量) 客户b加权平均价,
sum(客户c实际到货量)/7 客户c周平均到货量,
sum(客户c需求量)/7 客户c周平均需求量,
sum(客户c实际到货量*客户c价格)/sum(客户c实际到货量) 客户c加权平均价
from test_20220926 t group by datepart(wk,日期);