VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2414|回复: 10

请教日期分段SUM怎么写

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-12-15 17:00:01 | 显示全部楼层 |阅读模式

80        5        2        30        2016-12-02 00:00:00
114        11        4        58        2016-12-03 00:00:00
85        8        1        38        2016-12-04 00:00:00
82        11        1        31        2016-12-05 00:00:00
83        9        0        39        2016-12-06 00:00:00
91        7        2        42        2016-12-07 00:00:00

SELECT SDate,sum(SaleGroup) as SaleGroup,sum(SzG) as SzG FROM dbo.Saleday Dbo_saleday
WHERE SDate>='01.12.2016' and SDate<='01.02.2017'
GROUP BY  SDate
order by SDate
上面是原SQL
我想让数据每5天为一行统计如何写
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-12-15 17:15:01 | 显示全部楼层
SELECT SDate = MIN(SDate) ,sum(SaleGroup) as SaleGroup,sum(SzG) as SzG FROM dbo.Saleday Dbo_saleday
WHERE SDate>='01.12.2016' and SDate<='01.02.2017'
GROUP BY  DATEDIFF(Day, '01.12.2016', SDate) / 5
order by SDate
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-12-16 07:00:01 | 显示全部楼层
2016-12-01 00:00:00194        16       
2016-12-03 00:00:00423        45       
2016-12-08 00:00:00492        57       
2016-12-13 00:00:00171        32       
2017-01-01 00:00:0027        2       
2017-01-02 00:00:000        0       

返回数据不对..不是按5天返回...
回复

使用道具 举报

0

主题

30

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-12-16 08:00:01 | 显示全部楼层
SELECT SDateFrom = MIN(SDate) ,SDateTo = MAX(SDate) ,sum(SaleGroup) as SaleGroup,sum(SzG) as SzG FROM dbo.Saleday Dbo_saleday
WHERE SDate>='01.12.2016' and SDate<='01.02.2017'
GROUP BY  DATEDIFF(Day, '01.12.2016', SDate) / 5
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-12-16 09:00:01 | 显示全部楼层
2016-12-01 00:00:00194        16       
2016-12-03 00:00:00423        45            ?怎么才3天       
2016-12-08 00:00:00492        57       
2016-12-13 00:00:00171        32       
2017-01-01 00:00:0027        2       
2017-01-02 00:00:000        0       

返回数据不对..不是按5天返回...
SDate = MIN(SDate)
这个不理解...为什么用MIN
回复

使用道具 举报

0

主题

30

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-12-16 09:15:01 | 显示全部楼层
日期会不连续???
回复

使用道具 举报

0

主题

30

帖子

25.00

积分

新手上路

Rank: 1

积分
25.00
发表于 2020-12-16 22:45:01 | 显示全部楼层
是5天一行还是5条记录一行?
回复

使用道具 举报

1

主题

13

帖子

11.00

积分

新手上路

Rank: 1

积分
11.00
发表于 2020-12-19 23:00:01 | 显示全部楼层
SDate = MIN(SDate)
这个不理解...为什么用MIN
--------
是不是sdate中按五天的计算,然后老大求得是五天中最小的一个(不然会出错的)
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-12-20 14:30:01 | 显示全部楼层
按5天统计  不是5行记录统计
回复

使用道具 举报

0

主题

211

帖子

108.00

积分

新手上路

Rank: 1

积分
108.00
发表于 2020-12-20 17:15:01 | 显示全部楼层
--try

declare @dt1 datetime, @dt2 datetime
select @dt1='2016-12-01', @dt2='2017-02-01'
declare @T table([date] datetime)
while @dt1<=@dt2
begin
        insert @T select @dt1
        set @dt1=@dt1+5
end

SELECT A.[date] as SDate, isnull(sum(SaleGroup), 0) as SaleGroup, isnull(sum(SzG), 0) as SzG
FROM @T as A
left join dbo.Saleday Dbo_saleday as B on B.SDate between A.[date] and A.[date]+5
WHERE B.SDate between @dt1 and @dt2
GROUP BY  A.[date]


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表