CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

小小菜鸟紧急求助

楼主bluebirdme(烈焰あ寒星)2005-06-20 02:17:42 在 MS-SQL Server / 基础类 提问

比如说一个销售系统,怎么写个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

相关问题

  • 小小菜鸟又有问题了~~
  • 小小菜鸟,请叫一个菜鸟问题?
  • 怎么用Vc调试dos程序?小小菜鸟问
  • 小小菜鸟请问各位大虾关于CDialogBar的问题:
  • 我是一只小小小小菜鸟,想要飞却不知如何飞高?
  • 菜鸟的问题, 非常紧急!
  • 紧急求助!(菜鸟问题)
  • 菜鸟紧急求助!有重谢
  • VC++大大虾们,我是编程小小菜鸟,请问我入门学VC++,用什么书好啊?
  • 紧急求救,地地道道的菜鸟!

关键词

  • 销售
  • 存储过程
  • 数据
  • date
  • salesdate
  • salesamount
  • xse
  • datepart
  • union
  • 假设

得分解答快速导航

  • 帖主:bluebirdme
  • jixiaojie
  • xiaonvjing
  • Hopewell_Go

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo