按照月份来统计编号是1的大类的销售金额
2011-12-20 14:55
218 查看
declare @prdtid char(7)
declare @date_str char(4)
declare @date_int int
declare @sql nvarchar(3000)
declare @bigc int
declare @cop char(2)
set @bigc=1
set @cop='02'
if object_id('tempdb.dbo.#class') is null
begin
create table #class
(
ClassID nvarchar(15),
bigc int
)
end
truncate table #class
insert into #class(ClassID,bigc)
SELECT ClassID,bigc FROM FS_MS_ProductsClass WHERE bigc=@bigc
--select ClassID,bigc from #class
if object_id('tempdb.dbo.#prdt') is null
begin
create table #prdt
(
prdt char(7),
ClassID nvarchar(15),
bigc int
)
end
truncate table #prdt
insert into #prdt(prdt,ClassID,bigc)
SELECT prdtid,ClassID,@bigc FROM FS_MS_Products WHERE ClassID in (select ClassID from #class)
--select prdt,ClassID,bigc from #prdt
set @date_int=1101
while @date_int<=1112
begin
set @date_str=LTRIM(RTRIM(CAST(@date_int as NCHAR)))
if @date_int=1101
begin
set @sql=N'select '+RIGHT(@date_str,2)+' as ''月份'', SUM(num*price) as ''金额'' FROM [szjdw].[dbo].[mf_prdtorder_dede] where prdtid in (select prdt from #prdt) and SUBSTRING(order_id,2,2)='''+@cop+''' and SUBSTRING(order_id,4,4)='''+@date_str+''''
end
else
begin
set @sql=@sql+' union '+'select '+RIGHT(@date_str,2)+' as ''月份'', SUM(num*price) as ''金额'' FROM [szjdw].[dbo].[mf_prdtorder_dede] where prdtid in (select prdt from #prdt) and SUBSTRING(order_id,2,2)='''+@cop+''' and SUBSTRING(order_id,4,4)='''+@date_str+''''
end
set @date_int=@date_int+1
end
--select @sql
exec(@sql)
drop table #prdt,#class
可惜的是红色部分不能写到外面来,郁闷!
declare @date_str char(4)
declare @date_int int
declare @sql nvarchar(3000)
declare @bigc int
declare @cop char(2)
set @bigc=1
set @cop='02'
if object_id('tempdb.dbo.#class') is null
begin
create table #class
(
ClassID nvarchar(15),
bigc int
)
end
truncate table #class
insert into #class(ClassID,bigc)
SELECT ClassID,bigc FROM FS_MS_ProductsClass WHERE bigc=@bigc
--select ClassID,bigc from #class
if object_id('tempdb.dbo.#prdt') is null
begin
create table #prdt
(
prdt char(7),
ClassID nvarchar(15),
bigc int
)
end
truncate table #prdt
insert into #prdt(prdt,ClassID,bigc)
SELECT prdtid,ClassID,@bigc FROM FS_MS_Products WHERE ClassID in (select ClassID from #class)
--select prdt,ClassID,bigc from #prdt
set @date_int=1101
while @date_int<=1112
begin
set @date_str=LTRIM(RTRIM(CAST(@date_int as NCHAR)))
if @date_int=1101
begin
set @sql=N'select '+RIGHT(@date_str,2)+' as ''月份'', SUM(num*price) as ''金额'' FROM [szjdw].[dbo].[mf_prdtorder_dede] where prdtid in (select prdt from #prdt) and SUBSTRING(order_id,2,2)='''+@cop+''' and SUBSTRING(order_id,4,4)='''+@date_str+''''
end
else
begin
set @sql=@sql+' union '+'select '+RIGHT(@date_str,2)+' as ''月份'', SUM(num*price) as ''金额'' FROM [szjdw].[dbo].[mf_prdtorder_dede] where prdtid in (select prdt from #prdt) and SUBSTRING(order_id,2,2)='''+@cop+''' and SUBSTRING(order_id,4,4)='''+@date_str+''''
end
set @date_int=@date_int+1
end
--select @sql
exec(@sql)
drop table #prdt,#class
可惜的是红色部分不能写到外面来,郁闷!
相关文章推荐
- dedecms按照月份统计文章sql语句
- sql月份销售统计
- 用Excel数据透视表的单字段透视功能统计各销售人员的销售总金额
- 统计各个商品每月的销售金额
- mysql按照天、月份、年份统计查询
- 按照月份统计的汇总
- 按部门,按月份统计总金额的SQL写法!!
- nyoj-254-编号统计
- 答网友问:如何按月进行统计公司采购进货、销售出库信息?
- 【统计】Oracle按照时间统计总结
- spark SQL学习(案例-统计每日销售)
- 在PHP中实现按照预定规则自动生成编号的方法
- 随机产生50个30到35的整数,统计每个数字出现的次数(TreeMap实现),输出时按照数字的降序排列,并且统计出现次数最多的数字和它的次数。
- oracle 按照时间分组统计求和
- SQL按照日、周、月、年统计数据
- MySQL如何按月份统计数据详解(转)
- SQL按照日、周、月、年统计数据
- [MSSQL2005]月统计SQL脚本(包括没有记录的月份)
- Netsharp快速入门(之14) 销售管理(报表A 热销滞销品统计)
- Nyoj-254 编号统计