22,207
社区成员
发帖
与我相关
我的任务
分享
DECLARE @TB TABLE(编号 INT, 日期 SMALLDATETIME, 日平均值 INT)
INSERT @TB
SELECT 1, '2008-9-3', 10 UNION ALL
SELECT 1, '2008-9-4', 20 UNION ALL
SELECT 1, '2008-9-5', 10 UNION ALL
SELECT 1, '2008-9-6', 20 UNION ALL
SELECT 1, '2008-9-7', 10 UNION ALL
SELECT 1, '2008-9-8', 20 UNION ALL
SELECT 1, '2008-9-9', 20 UNION ALL
SELECT 1, '2008-9-10', 20 UNION ALL
SELECT 1, '2008-9-11', 20 UNION ALL
SELECT 1, '2008-9-12', 20
set DATEFIRST 1
select 编号,convert(varchar(10),DATEADD(day,1-DATEPART(weekday,日期),日期),120)+'——'+
convert(varchar(10),DATEADD(day,7-DATEPART(weekday,日期),日期),120) as 周区间,
avg(日平均值) as 周平均值
from @TB
group by 编号,convert(varchar(10),DATEADD(day,1-DATEPART(weekday,日期),日期),120)+'——'+
convert(varchar(10),DATEADD(day,7-DATEPART(weekday,日期),日期),120)
--结果
编号 周区间 周平均值
1 2008-09-01——2008-09-07 14
1 2008-09-08——2008-09-14 20
set DATEFIRST 1
select 编号,convert(varchar(10),DATEADD(day,1-DATEPART(weekday,getdate()),日期),120)+'——'+
convert(varchar(10),DATEADD(day,7-DATEPART(weekday,getdate()),日期),120) as 周区间,
avg(日平均值) as 周平均值
from 数据统计
group by 编号,convert(varchar(10),DATEADD(day,1-DATEPART(weekday,getdate()),日期),120)+'——'+
convert(varchar(10),DATEADD(day,7-DATEPART(weekday,getdate()),日期),120)
DECLARE @TB TABLE(NO INT, DATE SMALLDATETIME, QTY INT)
INSERT @TB
SELECT 1, '2008-9-3', 10 UNION ALL
SELECT 1, '2008-9-4', 20 UNION ALL
SELECT 1, '2008-9-5', 10 UNION ALL
SELECT 1, '2008-9-6', 20 UNION ALL
SELECT 1, '2008-9-7', 10 UNION ALL
SELECT 1, '2008-9-8', 20 UNION ALL
SELECT 1, '2008-9-9', 20 UNION ALL
SELECT 1, '2008-9-10', 20 UNION ALL
SELECT 1, '2008-9-11', 20 UNION ALL
SELECT 1, '2008-9-12', 20
SET DATEFIRST 1
SELECT NO,CONVERT(VARCHAR(10),MIN(DATE),120)+'-'+CONVERT(VARCHAR(10),MAX(DATE),120) AS DATE,AVG(QTY) AS QTY
FROM @TB
GROUP BY NO,DATEPART(WK,DATE)
/*
NO DATE QTY
----------- --------------------- -----------
1 2008-09-03-2008-09-07 14
1 2008-09-08-2008-09-12 20
*/
select 编号,datepart(week,日期) as 周,avg(日平均值) as 周平均值
from 数据统计
group by 编号,datepart(week,日期)