根据数据表按月、季、年进行统计

huangqing_80 2008-11-27 09:04:43
有如下数据表:
日期 销售额
2006-01-01 5813.20
2006-01-02 17195.50
2006-01-03 10012.60


2007-12-29 6404.10
2007-12-30 6238.30
2007-12-31 4638.90
根据上述表,按月、季、年分别进行统计。
注意:第一季为2-4月,第二季为5-7月,第三季为8-10月,第四季为11-1月。
我已经得到了年份和月份的SQL语句,但是不知道怎么按季进行统计
...全文
220 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangqing_80 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 qianjin036a 的回复:]
SQL codeselect left(convert(varchar(6),dateadd(m,-1,日期),112),4)+convert(varchar(1),(convert(int,right(convert(varchar(6),dateadd(m,-1,日期),112),2))-1)/3+1) as 季度,sum(销售额) as 销售额
from tb group by left(convert(varchar(6),dateadd(m,-1,日期),112),4)+convert(varchar(1),(convert(int,right(convert(varchar(6),dateadd(m,-1,日期),112),2))-1)/3+1)
[/Quote]

够长啊
-晴天 2008-11-27
  • 打赏
  • 举报
回复
select left(convert(varchar(6),dateadd(m,-1,日期),112),4)+convert(varchar(1),(convert(int,right(convert(varchar(6),dateadd(m,-1,日期),112),2))-1)/3+1) as 季度,sum(销售额) as 销售额
from tb group by left(convert(varchar(6),dateadd(m,-1,日期),112),4)+convert(varchar(1),(convert(int,right(convert(varchar(6),dateadd(m,-1,日期),112),2))-1)/3+1)
huangqing_80 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 csdyyr 的回复:]
SQL code
select y,q, sum(销售额) as 销售额
from (
select *, year(日期) as y,
case when month(日期) in (2,3,4) then q1,
when month(日期) in (5,6,7) then q2,
when month(日期) in (8,9,10) then q3,
when month(日期) in (11,12,1) then q4
end as q
from tb
) t
group by y,q
[/Quote]

老大,when语句后面是没有逗号的,害得我找了半天错误
csdyyr 2008-11-27
  • 打赏
  • 举报
回复

select y,q, sum(销售额) as 销售额
from (
select *, year(日期) as y,
case when month(日期) in (2,3,4) then q1,
when month(日期) in (5,6,7) then q2,
when month(日期) in (8,9,10) then q3,
when month(日期) in (11,12,1) then q4
end as q
from tb
) t
group by y,q
dawugui 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用楼主 huangqing_80 的帖子:]
有如下数据表:
日期 销售额
2006-01-01 5813.20
2006-01-02 17195.50
2006-01-03 10012.60


2007-12-29 6404.10
2007-12-30 6238.30
2007-12-31 4638.90
根据上述表,按月、季、年分别进行统计。
注意:第一季为2-4月,第二季为5-7月,第三季为8-10月,第四季为11-1月。
我已经得到了年份和月份的SQL语句,但是不知道怎么按季进行统计
[/Quote]
--季度
select year(日期) 年, datepart(quarter , 日期) 季度 , sum(销售额) 销售额
from tb
group by year(日期) , datepart(quarter , 日期)
huangqing_80 2008-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wufeng4552 的回复:]
SQL codequarter
[/Quote]

如何修改季的起始月份
rucypli 2008-11-27
  • 打赏
  • 举报
回复
selet sum(xiaoshoue)
from tb
where month(riqi) in (2,3,4)

union all

selet sum(xiaoshoue)
from tb
where month(riqi) in (5,6,7)
水族杰纶 2008-11-27
  • 打赏
  • 举报
回复
quarter

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧