按照月份来统计编号是1的大类的销售金额

系统 1588 0

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

可惜的是红色部分不能写到外面来,郁闷!

按照月份来统计编号是1的大类的销售金额


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论