有一张表
num date money
A 2013-05-27 100
A 2013-05-24 1200
A 2013-05-22 100
A 2013-05-20 100
A 2013-05-19 300
A 2013-05-16 400
A 2013-05-12 200
A 2013-05-09 100
A 2013-05-06 500
A 2013-05-01 150
我现在想求5天一个间隔,当中金额最大的那5天的sum(金额)
num date money
A 2013-05-27 100
A 2013-05-24 1200
A 2013-05-22 100
A 2013-05-20 100
A 2013-05-19 300
A 2013-05-16 400
A 2013-05-12 200
A 2013-05-09 100
A 2013-05-06 500
A 2013-05-01 150
我现在想求5天一个间隔,当中金额最大的那5天的sum(金额)
go
create table [TB] (num nvarchar(2),date datetime,money int)
insert into [TB]
select 'A','2013-05-27',100 union all
select 'A','2013-05-24',200 union all
select 'A','2013-05-22',100 union all
select 'A','2013-05-20',1200 union all
select 'A','2013-05-19',300 union all
select 'A','2013-05-16',400 union all
select 'A','2013-05-12',200 union all
select 'A','2013-05-09',100 union all
select 'A','2013-05-06',500 union all
select 'A','2013-05-01',150select * from [TB]
;WITH TT
AS(
SELECT DATEADD(dd,number,'2013-05-01') AS dd
FROM master..spt_values M
WHERE type ='P'),T1 AS(
SELECT TT.dd,TB.date,TB.money
FROM TT
LEFT JOIN TB ON TT.dd = TB.date),T2 AS(
SELECT TOP 100 PERCENT dd,date,money,convert(int,ROW_NUMBER() OVER(ORDER BY GETDATE())/6) AS nu
FROM T1
WHERE NOT EXISTS ( SELECT 1
FROM T1 A
WHERE NOT EXISTS ( SELECT 1
FROM T1 B
WHERE A.dd <= b.date )
AND T1.dd = a.dd )
ORDER BY dd DESC)SELECT TOP 1 SUM(money)
FROM T2
GROUP BY nu
ORDER BY SUM(money) DESC--1600