行转列,经典行转列 讨论

use CubeDemo; go SET NOCOUNT ON /*销售模块*/ if OBJECT_ID(N'BusinessCommon_SaleModule',N'U') is not null drop table BusinessCommon_SaleModule go create table BusinessCommon_SaleModule ( BCId int identity(1,1) primary key not null, ShopId varchar(20) null, ---门店Id ShopName nvarchar(50) null, ---门店名称 SaleCarCount int null, --销售量 BCDate datetime null --生成日期 ) go insert into BusinessCommon_SaleModule select 'MD001','广丰店',80,'2010-4-10' union all select 'MD001','广丰店',20,'2010-5-25' union all select 'MD001','广丰店',55,'2011-5-1' union all select 'MD001','广丰店',48,'2011-5-11' union all select 'MD001','广丰店',80,'2011-3-18' union all select 'MD001','广丰店',10,'2011-3-12' union all select 'MD001','广丰店',40,'2011-3-25' union all select 'MD002','现代店',50,'2011-3-27' union all select 'MD002','现代店',40,'2011-5-15' union all select 'MD002','现代店',80,'2010-4-18' union all select 'MD002','现代店',40,'2010-4-13' union all select 'MD004','海马店',70,'2011-3-15' union all select 'MD005','一丰店',80,'2010-4-10' union all select 'MD005','一丰店',80,'2011-3-10' union all select 'MD005','一丰店',80,'2011-5-22' union all select 'MD003','宝马店',20,'2011-4-10' union all select 'MD003','宝马店',80,'2010-8-10' go select * from BusinessCommon_SaleModule; /* 如何根据条件 日 2011-4-18 动态查询到 2010年4月(从2010年4月1日到2010年4月18日的数据) 2011年1月(从2011年1月1日到2011年1月18日的数据) 2011年2月(从2011年2月1日到2011年2月18日的数据) 2011年3月(从2011年3月1日到2011年3月18日的数据) 2011年4月(从2011年4月1日到2011年4月18日的数据) 2011年累计(从2011年1月1日到2011年4月18日的数据) 2010年累计(从2010年1月1日到2010年4月18日的数据) 这些数据 */ /* 要得到的结果如下: 门店名称 2010年4月 2011年1月 2011年2月 2011年3月 2011年4月 2011年累计 2010年累计 广丰店 80 0 0 90 0 130 80 现代店 120 0 0 0 0 50 120 宝马店 0 0 0 0 20 20 0 海马店 0 0 0 70 0 70 0 一丰店 80 0 0 80 0 80 80 */
Tags:  db2行转列 java行转列 sql行转列 行转列

延伸阅读

最新评论

发表评论