数码产品各店面分析
admin
2023-05-23 05:22:29
0次

//数码产品各店面分析报表//


BEGIN
 -- SET NOCOUNT ON added to prevent extra result sets from
 -- interfering with SELECT statements.
 SET NOCOUNT ON;
create table #temp12([日期] datetime,[部门代码] varchar(100),[部门名称]  varchar(100), [商品代码]  varchar(100),
[商品名称]  varchar(100),[品牌] varchar(100),[数量] int,[含税金额] decimal(10,2),
[不含税金额] decimal(10,2),[成本] decimal(10,2))

insert into #temp12
select t0.F_PBKA_DATE,
t12.fnumber,t11.fname fname1,t2.FNUMBER,t3.FNAME,t2.F_PBKA_MOBILE_BRANK,
case when t0.FBILLTYPEID='57faf492b10d31' then sum(isnull(t1.FQTY,0))
 when  t0.FBILLTYPEID='580778655b6d7d' then  -sum(isnull(t1.FQTY,0))  end FQTY,
case when t0.FBILLTYPEID='57faf492b10d31' then sum(isnull(t1.FSDJAMOUNT ,0))
 when  t0.FBILLTYPEID='580778655b6d7d' then  -sum(isnull(t1.FSDJAMOUNT ,0))  end 含税金额,
 case when t0.FBILLTYPEID='57faf492b10d31' then sum(isnull(t1.F_PBKA_BHSAMOUNT ,0))
 when  t0.FBILLTYPEID='580778655b6d7d' then  -sum(isnull(t1.F_PBKA_BHSAMOUNT ,0))  end 不含税金额,0
from PBKA_t_BillHead t0
inner join PBKA_t_GoodsDetail t1 on t0.fid=t1.fid
left join t_bd_material t2 on t1.FMATERIALID=t2.FMATERIALID
inner join T_BD_MATERIAL_L t3 on t1.FMATERIALID=t3.FMATERIALID and t3.FLOCALEID=2052
inner join t_bd_material t9 on t3.FMATERIALID=t9.FMATERIALID
join t_bd_department_l t11 on t0.FOLDDEPARTMENT=t11.FDEPTID
join t_bd_department t12 on t11.FDEPTID=t12.FDEPTID
where  t12.fnumber like '203%'and t9.FNUMBER like '03%'
and (convert(varchar(10),t0.F_PBKA_DATE,21)>='2017-03-01'
and convert(varchar(10),t0.F_PBKA_DATE,21)<='2017-03-31')
 
group by  t0.F_PBKA_DATE,t2.FNUMBER,t11.fname,t12.fnumber,t3.FNAME,t2.F_PBKA_MOBILE_BRANK,t0.FBILLTYPEID order by 1

/*销售出库单成本*/
insert into #temp12
select t0.FDATE,t12.FNUMBER FNUMBER,t11.fname fname1, t9.FNUMBER,t5.FNAME,t9.F_PBKA_MOBILE_BRANK,0,0,0,sum(t2.FCOSTAMOUNT)
 From T_SAL_OUTSTOCK t0
      join  T_SAL_OUTSTOCKENTRY t1 on t0.FID =t1.fid
      join T_SAL_OUTSTOCKENTRY_F t2 on t1.FENTRYID =t2.FENTRYID
      join t_bd_material_l t5 on t1.FMATERIALID =t5.FMATERIALID and FLOCALEID=2052
      join t_bd_material t9 on t5.FMATERIALID=t9.FMATERIALID
     join  T_SAL_OUTSTOCKENTRY_R t10 on t2.FENTRYID=t10.FENTRYID
     join t_bd_department_l t11 on t0.FOLDDEPARTMENT=t11.FDEPTID
                join t_bd_department t12 on t11.FDEPTID=t12.FDEPTID
      where  (convert(varchar(10),t0.fdate,21)>='2017-03-01'
          and convert(varchar(10),t0.fdate,21)<='2017-03-31') 
       and t10.FSRCTYPE ='PBKA_XSKD'  and t9.fnumber like '03%'   and t12.fnumber like '203%'
         group by t0.FDATE,t12.FNUMBER,t11.fname, t9.FNUMBER,t5.FNAME,t9.F_PBKA_MOBILE_BRANK

insert into #temp12
select t0.fdate,t12.FNUMBER FNUMBER,t11.fname fname1, t9.FNUMBER,t5.FNAME,t9.F_PBKA_MOBILE_BRANK,0,0,0,-sum(t2.FCOSTAMOUNT)
 From T_SAL_RETURNSTOCK t0
      join  T_SAL_RETURNSTOCKENTRY t1 on t0.FID =t1.fid
      join T_SAL_RETURNSTOCKENTRY_F t2 on t1.FENTRYID =t2.FENTRYID
      join t_bd_material_l t5 on t1.FMATERIALID =t5.FMATERIALID and FLOCALEID=2052
      join t_bd_material t9 on t5.FMATERIALID=t9.FMATERIALID
     join  T_SAL_RETURNSTOCKENTRY_R t10 on t2.FENTRYID=t10.FENTRYID
     join t_bd_department_l t11 on t0.FOLDDEPARTMENT=t11.FDEPTID
                join t_bd_department t12 on t11.FDEPTID=t12.FDEPTID
      where  (convert(varchar(10),t0.fdate,21)>='2017-03-01'
          and convert(varchar(10),t0.fdate,21)<='2017-03-31')
       and t10.FSRCBILLTYPEID ='PBKA_XSKD'   and t12.fnumber like '203%' and t9.fnumber like '03%'
       group by t0.fdate,t12.FNUMBER,t11.fname, t9.FNUMBER,t5.FNAME,t9.F_PBKA_MOBILE_BRANK
 declare @Sql varchar(8000)
 select @sql=''
 declare @sql1  varchar(8000)
 select @sql1=''
 create table #table21 ([商品名称]  varchar(100),[部门名称] varchar(100),[数量] int,[含税金额] decimal(18,2),[毛利] decimal(18,2))
 create table #table22 ([商品名称]  varchar(100),[部门名称] varchar(100),[数量]int,[含税金额] decimal(18,2),[毛利] decimal(18,2))
   insert into #table21
select  [商品名称] ,[部门名称],sum([数量]),sum([含税金额]) [含税金额],sum([不含税金额])-sum([成本])  from #temp12
group by  [商品名称] ,[部门名称]
insert into #table22
select [商品名称],[部门名称],sum([数量]),sum([含税金额]),sum([毛利]) from #table21 group by [商品名称],[部门名称]

  create table #table1 ([商品名称] varchar(100),[部门名称] varchar(100),[数量] int,[含税金额] decimal(18,2),[毛利] decimal(18,2))

    set @sql1='insert into #table1 '
  set @sql1= @sql1+ ' select [商品名称],[部门名称],[数量],[含税金额],[毛利] from  #table22 '
 exec (@Sql1)
  set @sql1='insert into #table1 '
  set @sql1= @sql1+ '  select ''小计'',[部门名称],sum([数量]),sum([含税金额]),sum([毛利])  from  #table22 '
  set @sql1= @sql1+ ' GROUP BY [部门名称] '
-- exec (@Sql1)
--set @sql1='insert into #table1 '
--  set @sql1= @sql1+ '  select ''总计'',[部门名称],sum([含税金额]),sum([毛利]) from  #table22 '
--  set @sql1= @sql1+ '   GROUP BY [部门名称] '
 exec (@Sql1)

    set @sql='select [商品名称] 商品名称,'
    select @sql= @sql+'sum(case [部门名称] when '''+[部门名称]+'''
     then         数量 else 0 end) as ['+[部门名称]+'|数量],
  sum(case [部门名称] when '''+[部门名称]+'''
     then         含税金额 else 0 end) as ['+[部门名称]+'|含税金额],
  sum(case [部门名称] when '''+[部门名称]+'''
     then         毛利 else 0 end) as ['+[部门名称]+'|毛利],'
  from (select distinct [部门名称] from #table1) as a
  select @sql=left(@sql,len(@sql)-1)+' ,sum(数量) [合计数量],sum(含税金额) [合计含税金额],sum(毛利) [合计毛利]'+'from #table1 group by [商品名称] '
 
      exec (@sql)
 
drop table #table21,#table22,#temp12,#table1
END

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...