sql server 求每月销量

低调的感觉 2016-03-08 03:27:32
以下是数据源:
商品名称    销售日期     销售数量
---- -------- -----------
001 2016/1/1 2
001 2016/1/2 1
001 2016/1/5 3
002 2016/1/2 1
002 2016/1/3 5
001 2016/2/1 1
001 2016/2/3 6
003 2016/2/1 2
003 2016/2/2 2


以下是需要得到的结果:
名称   1月数量        2月数量
---- ----------- -----------
001 6 7
002 6 0
003 0 4


就是需要根据数据源,得到近两个月的销量
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
道素 2016-03-08
  • 打赏
  • 举报
回复
还有一种写法:

WITH a(商品名称,销售日期,销售数量) AS (

select '001','2016/1/1',2 UNION ALL
select '001','2016/1/2',1 UNION ALL
select '001','2016/1/5',3 UNION ALL
select '002','2016/1/2',1 UNION ALL
select '002','2016/1/3',5 UNION ALL
select '001','2016/2/1',1 UNION ALL
select '001','2016/2/3',6 UNION ALL
select '003','2016/2/1',2 UNION ALL
select '003','2016/2/2',2
	)

select   商品名称,y,sum([1]) as [1],sum([2]) as [2],sum([3]) as [3]
from (select * ,year(销售日期) as y,month(销售日期) as m from a) aa
pivot (sum(销售数量) for m in ([1],[2],[3])) b
GROUP BY 商品名称,y
顾西昂 2016-03-08
  • 打赏
  • 举报
回复

select 商品名称,
sum(case detepart(mm,销售日期)=1 THEN 销售数量 ELSE 0 END) as 1月数量,
sum(case detepart(mm,销售日期)=2 THEN 销售数量 ELSE 0 END) as 2月数量
from tab group by 商品名称
shoppo0505 2016-03-08
  • 打赏
  • 举报
回复
下面是统计的代码,行专列自己弄吧
select
tb.商品名称
, DATEPART(MONTH, 销售日期)
, SUM(销售数量)
from tb
group by 商品名称, DATEPART(MONTH, 销售日期)
Ginnnnnnnn 2016-03-08
  • 打赏
  • 举报
回复

SELECT 商品名称,
		SUM(CASE WHEN MONTH(销售日期) = 1 THEN 销售数量 ELSE 0 END) AS 1月销售额,
		       SUM(CASE WHEN MONTH(销售日期) = 2 THEN 销售数量 ELSE 0 END) AS 2月销售额
	FROM tb
		GROUP BY 商品名称
中国风 2016-03-08
  • 打赏
  • 举报
回复
如果有年数据时,最好加上年份分组如下:
SELECT 商品名称,YEAR(销售日期) AS 年份,SUM(CASE WHEN MONTH(销售日期)=1 THEN 销售数量 ELSE 0 END) AS [1月销售数量]
,SUM(CASE WHEN MONTH(销售日期)=2 THEN 销售数量 ELSE 0 END) AS [2月销售数量]
FROM TableName
GROUP BY 商品名称,YEAR(销售日期)
软件工程与数据库 课程设计 任务书 学院名称: 数学与计算机学院 课程代码:_6014419_ 专 业: 年 级: 一、设计题目 图书管理系统 二、主要内容 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的 借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续 借、归还和查询书籍等操作,管理员可以完成书籍和学生的增加,删除和修改以及对学 生,借阅、续借、归还的确认。如: 图书室有各种图书一万多册。 每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社、定价和内容 简介。 借书证记录有借阅者的姓名、所在单位、职业等。 凭借书证借书,每次最多能借8本书。借书期限最长为30天。 实现新进图书的数据录入。 实现对所有购进图书的分类查询和分类统计。 能够按书名、作者等分类查询现有图书的数量。 记录借阅者的个人资料和所借图书的书名、书号数据等。 三、具体要 1、完成系统的需分析 通过需分析确定系统需要处理的数据的需,要使用数据库的辅助设计工具( PowerDesigner等),建立业务处理模型。 2、完成系统概念结构设计 概念数据模型(CDM)用于完成数据库的设计,与人和数据库平台和具体数据存储结构和 工具无关。首先选择局部应用画出分E-R图,最终形成系统的E-R图 3、完成系统逻辑结构设计 按照E- R图转换成关系模式的规则,将CDM转换成逻辑数据模型,并为每个关系模式设计主键、 外键。分析关系模式中的依赖关系,对关系模式规范化处理 4、完成系统物理结构设计 为每个关系分配存储长度,建立数据库的索引和视图,定义关系中的主码和外码,写 出关系创建和查询的SQL语句。 5、编码 选择你自己熟悉的开发工具完成一个DBS系统的编码工作。 源代码格式规范,注释不少于三分之一 四、主要技术路线提示 1.仔细阅读设计指导书内容,认真掌握任务要(2. 需分析( 3.概念结构设计( 4.逻辑结构设计(5.物理结构设计(6.编码. 2.后台推荐采用SQL server或Oracle;前台开发环境不限制。可采用ADO,ODBC,OLE DB或JDBC连接数据库, 并调用系统存储过程、自定义存储过程、函数等。 五、进度安排 第1周: 数据库系统概念模型、数据模型设计,创建数据库以及相关对象; 第2周: 前台程序开发,撰写报告,接受检查。 六、完成后应上交的材料 1. 源程序一份(包含数据库) 2. 课程设计报告一份 七、推荐参考资料 1.王珊.数据库系统概论(第四版). 高等教育出版社 2.闪四清.数据库系统原理与应用教程.清华大学出版社 3.周龙骧.数据库管理系统实现技术.中国地质大学出版社 4.张海藩.软件工程概论.清华大学出版社 5.陈明 编著.实用软件工程基础.清华大学出版社 6.成先海.数据库基础与应用-SQL SERVER2000. 机械工业出版社出版 指导教师 签名日期 年 月 日 系 主 任 审核日期 年 月 日 ----------------------- 数据库课程设计--图书管理系统全文共3页,当前为第1页。 数据库课程设计--图书管理系统全文共3页,当前为第2页。 数据库课程设计--图书管理系统全文共3页,当前为第3页。
实验二 基本数据查询 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例。 2.掌握MS SQL SERVER的查询分析器的用法。 3.能够完成对单表的查询操作。 4.能够完成对多表的联合查询操作。 5.能够完成带数据聚合函数的查询。 二、实验内容 (1)以实验一中创建的数据库abc作为查询对象,完成如下查询要: 1.查询2001年12月31日之后的销售情况,要列出销售人员姓名、销售的产品名以及销售日期。 2.查询销售电冰箱的销售人员的最大年龄。 3.统计每个产品的销售总数量,要只列出销售数量前3名的产品号和销售总数量。 4.查询销售人员的销售情况,包括有销售记录的销售人员和没有销售记录的销售人员,要列出销售人员姓名、销售的产品号、销售数量和销售日期。 5.列出2000年1月1日以后销售总量第一的产品的名称和生产厂家。 (2)以MS SQL SERVER的例子数据库pubs为查询对象,完成如下查询: 6.Pubs数据库:没有写过business或者popular_comp类型书籍的作者编号和姓名 7.Pubs数据库:查询出版物价格在20元以上的作者编号和姓名 8.Pub数据库:版税大于80%且state=ks的作者信息 9.Pub数据库:查询作者数量小于5的州 10.Pub数据库:查询价格最高的书的作者,和他写的所有书的名称 11.Pub数据库:查询销量较少的10本书的作者编写的所有书的书名 12.Pubs数据库:查询写了价格PRICE高于平均价的书,而且所在的州STATE=CA的作者名称,图书名称,价格。 注意:如果数据库服务器中的pubs例子数据库被破坏,请用SQL Server 2000 Sample Databases.rar中的instpubs.sql还原

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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