小小菜鸟紧急求助
比如说一个销售系统,怎么写个SQL语句实现按月统计功能?
就是将每个月的销售额加在一起
拜托大大们帮小弟个忙
非常感谢~~
问题点数:20、回复次数:6Top
1 楼bluebirdme(烈焰あ寒星)回复于 2005-06-20 02:22:13 得分 0
就假设有两列好了,销售日期(SalesDate)和销售金额(SalesAmount)。
Top
2 楼bluebirdme(烈焰あ寒星)回复于 2005-06-20 02:34:36 得分 0
要求输出如下:
Months SalesAmount
1 XXX
2 XXX
3 XXX
4 XXX
... ...
XXX为当月统计额Top
3 楼jixiaojie(太多借口)回复于 2005-06-20 02:52:00 得分 10
如果只有一年的数据
select datepart(mm,SalesDate) as Months ,sum(SalesAmount) as SalesAmount
from tb
group by datepart(mm,SalesDate)
order by datepart(mm,SalesDate)Top
4 楼xiaonvjing(飞扬)回复于 2005-06-20 05:06:41 得分 8
我想这样的题,建议你最好创建一个存储过程来做,这样你就可以定期按月进行对其销售金额
进行汇总。
建立测试环境:
--假设你的表中id 代表商品编号,quantity 代表销售数量,price 代表销售单价,
--date1 代表销售日期
--创建销售表:
create table table1(id int,quantity int,price money,date1 datetime)
--插入数据:
delete from table1
insert into table1 select 1,50,150,'2005-01-05'
union all select 1,89,125,'2005-01-21'
union all select 1,189,125,'2005-01-22'
union all select 2,60,160,'2005-01-25'
union all select 1,48,170,'2005-02-04'
union all select 2,74,160,'2005-02-26'
union all select 3,14,125.5,'2005-04-13'
union all select 3,89,125,'2005-04-28'
union all select 3,189,125,'2005-04-29'
--显示表中所有数据;
select * from table1
--根据需求创建存储过程:
create proc proc1
@date1 int --输入指定月份进行统计销售额
as
select id,sum(quantity*price) xse from table1 where datepart(mm,date1)=@date1
group by id
--执行存储过程,测试数据
exec proc1 1
我也不知道你表的结构,你试一下这样是否满足你的要求;Top
5 楼xiaonvjing(飞扬)回复于 2005-06-20 05:13:28 得分 0
补充;
你也可以创建一个视图,来汇总销售金额:
假设还是上面的数据的话:
create view xse
as
select datepart(mm,date1),sum(quantity*price) xsje from table1 group by datepart(mm,date1)
只要你想按月汇总销售金额的话,就可以显示视图就可以啦
select * from xse
试一下吧Top
6 楼Hopewell_Go(好的在后頭﹗希望更好﹗﹗)回复于 2005-06-20 08:41:15 得分 2
select sum(Mondy) from tablename group by convert(char(7),date,120)Top




