K3Cloud 存货收发存汇总表二开优化

2023-12-05 03:52

本文主要是介绍K3Cloud 存货收发存汇总表二开优化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

业务背景

  1. 相较于EAS或者苍穹,老的存货收发汇总表,不能显示按类型区分的出以及入数据,故按照EAS的样式对其进行优化。
  2. 此业务场景为固定税率,可更具现场实际情况确定。

示例代码

create procedure [dbo].[SP_hsd_sfchz] (
@datefrom datetime,@dateto datetime
) as
BEGIN

Set nocount on

CREATE TABLE #KD_SFC ([公司编码]           varchar(60)    null, [公司名称]           varchar(60)    null, [分组编码]           varchar(60)    null, [分组名称]           varchar(60)    null, [年]           varchar(60)    null, [月]           varchar(60)    null,[存货类别产品码]           varchar(60)    null, [产存货类别名称]           varchar(60)    null,[产品代码]           varchar(1000)    null, [产品名称]           varchar(100)    null,[规格]           varchar(150)    null, [单位编码]           varchar(60)    null,    [单位名称]           varchar(60)    null,             [换算]       decimal(18, 6) default 0,        [上月结存数量]   decimal(18, 6) default 0,       [上月结存不含税金额]   decimal(18, 6) default 0,           [上月结存含税金额]            decimal(18, 6) default 0,       [本期采购入库数量]   decimal(18, 6) default 0,[本期采购入库税率]   decimal(18, 6) default 0,                [本期采购入库不含税金额]   decimal(18, 6) default 0,           [本期采购入库含税金额]            decimal(18, 6) default 0,       [本期生产入库数量]   decimal(18, 6) default 0,        [本期生产入库不含税金额]   decimal(18, 6) default 0,           [本期生产入库含税金额]            decimal(18, 6) default 0,     [本期其他入库数量]   decimal(18, 6) default 0,        [本期其他入库不含税金额]   decimal(18, 6) default 0,           [本期其他入库含税金额]            decimal(18, 6) default 0,        [本期其他类型入库数量]   decimal(18, 6) default 0,        [本期其他类型入库不含税金额]   decimal(18, 6) default 0,           [本期其他类型入库含税金额]            decimal(18, 6) default 0,       [本期其入库数量合计]   decimal(18, 6) default 0,        [本期入库不含税金额合计]   decimal(18, 6) default 0,           [本期入库含税金额合计]            decimal(18, 6) default 0,       [本期销售出库数量]   decimal(18, 6) default 0,[本期销售出库税率]   decimal(18, 6) default 0,                [本期销售出库不含税金额]   decimal(18, 6) default 0,           [本期销售出库含税金额]            decimal(18, 6) default 0,[本期销售出库成本]            decimal(18, 6) default 0,[本期领料计划数量]   decimal(18, 6) default 0,            [本期领料出库数量]   decimal(18, 6) default 0, [本期领料计划含税金额]            decimal(18, 6) default 0,        [本期领料出库不含税金额]   decimal(18, 6) default 0,           [本期领料出库含税金额]            decimal(18, 6) default 0,     [本期其他出库数量]   decimal(18, 6) default 0,[数量偏差]   decimal(18, 6) default 0, [金额偏差]   decimal(18, 6) default 0,                [本期其他出库不含税金额]   decimal(18, 6) default 0,           [本期其他出库含税金额]            decimal(18, 6) default 0,        [本期其他类型出库数量]   decimal(18, 6) default 0,        [本期其他类型出库不含税金额]   decimal(18, 6) default 0,           [本期其他类型出库含税金额]            decimal(18, 6) default 0,       [本期出库数量合计]   decimal(18, 6) default 0,        [本期出库不含税金额合计]   decimal(18, 6) default 0,           [本期出库含税金额合计]            decimal(18, 6) default 0, [期末结存数量]   decimal(18, 6) default 0,        [期末含税单价]   decimal(18, 6) default 0,        [期末结存不含税金额]   decimal(18, 6) default 0,           [期末结存含税金额]            decimal(18, 6) default 0,                                          )
      CREATE TABLE #KD_SF ([公司编码]           varchar(100)    null, [公司名称]           varchar(100)    null, [存货类别产品码]           varchar(100)    null, [产存货类别名称]           varchar(100)    null,[产品代码]           varchar(100)    null, [产品名称]           varchar(100)    null,[规格]           varchar(150)    null, [单位编码]           varchar(100)    null,    [单位名称]           varchar(100)    null,  [本期采购入库数量]   decimal(18, 6) default 0,                   [本期采购入库税率]   decimal(18, 6) default 0,                [本期采购入库不含税金额]   decimal(18, 6) default 0,           [本期采购入库含税金额]            decimal(18, 6) default 0,       [本期生产入库数量]   decimal(18, 6) default 0,        [本期生产入库不含税金额]   decimal(18, 6) default 0,           [本期生产入库含税金额]            decimal(18, 6) default 0,     [本期其他入库数量]   decimal(18, 6) default 0,        [本期其他入库不含税金额]   decimal(18, 6) default 0,           [本期其他入库含税金额]            decimal(18, 6) default 0,          [本期销售出库数量]   decimal(18, 6) default 0,[本期销售出库税率]   decimal(18, 6) default 0,                [本期销售出库不含税金额]   decimal(18, 6) default 0,           [本期销售出库含税金额]            decimal(18, 6) default 0,[本期销售出库成本]            decimal(18, 6) default 0,[本期领料计划数量]   decimal(18, 6) default 0,            [本期领料出库数量]   decimal(18, 6) default 0, [本期领料计划含税金额]            decimal(18, 6) default 0,        [本期领料出库不含税金额]   decimal(18, 6) default 0,           [本期领料出库含税金额]            decimal(18, 6) default 0,     [本期其他出库数量]   decimal(18, 6) default 0,      [本期其他出库不含税金额]   decimal(18, 6) default 0,           [本期其他出库含税金额]            decimal(18, 6) default 0                                                         )

– 期初计算
insert into #KD_SFC([公司编码],[公司名称],[存货类别产品码],[产存货类别名称],[分组编码],[分组名称],[单位编码],[单位名称],[年],[月],[产品代码], [产品名称],[规格],[上月结存数量],[上月结存不含税金额],[本期其入库数量合计],[本期入库含税金额合计],[本期出库数量合计],[本期出库不含税金额合计])
select gs.fnumber,gsa.fname,fz.FNUMBER fzno,fza.fname fzname,fzd.FNUMBER fzano,fze.fname fzaname,unit.fnumber,unita.fname,cha.fyear year,cha.FPERIOD mon ,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh ,sum(ch.fqty) qty,sum(ch.FAMOUNT) amount,sum(ch.FCurrentInQty) rkqty,sum(ch.FCurrentInAmount) rkamount,sum(ch.FOutStockQty) ckqty,sum(ch. FCurrentOutAmount) ckamount
from T_HS_STOCKDIMENSION chb left join t_hs_balance_h ch on chb.FENTRYID=ch.FDIMEENTRYID
left join T_HS_OUTACCTG cha on cha.fid=ch.fid left join T_BD_Material_L wl on chb.FMASTERID=wl.FMATERIALID
left join T_BD_Material wla on chb.FMASTERID=wla.FMATERIALID left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_BD_MATERIALGROUP fzd on substring(wla.fnumber,0,6)=fzd.fnumber left join T_BD_MATERIALGROUP_L fze on fzd.FID=fze.fid
left join T_BD_MATERIALBASE wld on wld.FENTRYID=wl.FPKID left join t_BD_Stock kf on kf.FMASTERID=chb.FSTOCKID
left join T_BD_UNIT unit on wld.FBASEUNITID=unit.FUNITID left join T_BD_UNIT_l unita on wld.FBaseUnitId=unita.FUNITID
left join T_HS_CALDIMENSIONS org on cha.FDIMENSIONID=org.FDIMENSIONID left join T_ORG_ORGANIZATIONS gs on gs.FORGID=org.FFINORGID
left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=org.FFINORGID and gsa.FNAME like ‘%华世%’
where cha.fyear=str(year(‘2023-09-01’)) and cha.FPERIOD=str(month(‘2023-09-01’)) and org.FFINORGID=1 and gsa.FNAME is not null and ch.FEndInitKey=0
group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,fzd.FNUMBER,fze.fname,unit.fnumber,unita.fname,cha.fyear ,cha.FPERIOD ,wla.fnumber ,wl.fname,wl.FSPECIFICATION

UNion all

select gs.fnumber,gsa.fname,fz.FNUMBER fzno,fza.fname fzname,fzd.FNUMBER fzano,fze.fname fzaname,unit.fnumber,unita.fname,cha.fyear year,cha.FPERIOD mon ,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh ,sum(ch.fqty) qty,sum(ch.FAMOUNT) amount,sum(ch.FCurrentInQty) rkqty,sum(ch.FCurrentInAmount) rkamount,sum(ch.FOutStockQty) ckqty,sum(ch. FCurrentOutAmount) ckamount
from T_HS_STOCKDIMENSION chb left join t_hs_balance ch on chb.FENTRYID=ch.FDIMEENTRYID
left join T_HS_OUTACCTG cha on cha.fid=ch.fid left join T_BD_Material_L wl on chb.FMASTERID=wl.FMATERIALID left join T_BD_Material wla on chb.FMASTERID=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_BD_MATERIALGROUP fzd on substring(wla.fnumber,0,6)=fzd.fnumber left join T_BD_MATERIALGROUP_L fze on fzd.FID=fze.fid
left join T_BD_MATERIALBASE wld on wld.FENTRYID=wl.FPKID left join t_BD_Stock kf on kf.FMASTERID=chb.FSTOCKID left join T_BD_UNIT unit on wld.FBASEUNITID=unit.FUNITID left join T_BD_UNIT_l unita on wld.FBaseUnitId=unita.FUNITID
left join T_HS_CALDIMENSIONS org on cha.FDIMENSIONID=org.FDIMENSIONID left join T_ORG_ORGANIZATIONS gs on gs.FORGID=org.FFINORGID left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=org.FFINORGID and gsa.FNAME like ‘%华世%’
where cha.fyear=str(year(‘2023-09-01’)) and cha.FPERIOD=str(month(‘2023-09-01’)) and org.FFINORGID=1 and gsa.FNAME is not null and ch.FEndInitKey=0
group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,fzd.FNUMBER,fze.fname,unit.fnumber,unita.fname,cha.fyear ,cha.FPERIOD ,wla.fnumber ,wl.fname,wl.FSPECIFICATION

—计算本期收发
insert into #KD_SF([公司编码],[公司名称],[存货类别产品码],[产存货类别名称],[产品代码],[产品名称],[规格],[单位编码],[单位名称],[本期生产入库数量],[本期生产入库不含税金额],[本期采购入库数量],[本期采购入库不含税金额],[本期采购入库含税金额],[本期其他入库数量],[本期其他入库不含税金额],[本期领料出库数量],[本期领料出库不含税金额],[本期销售出库数量],[本期销售出库不含税金额],[本期销售出库含税金额],[本期销售出库成本],[本期其他出库数量],[本期其他出库不含税金额])
select
tmp.gano,
tmp.gsname,
tmp.fzno,
tmp.fzname,
tmp.wlno,
tmp.wlname,
tmp.ggxh,
tmp.unitno,
tmp.unitname,
sum(tmp.scrkbaseqty) ,sum(tmp.scrkamount),
sum(tmp.cgrkqty),sum(tmp.cgrkamount),sum(tmp.cgrktaxamount),
sum(tmp.qtrkqty),sum(tmp.qtrkamount),
sum(tmp.llckqty),sum(tmp.llckamount),
sum(tmp.xsckqty),sum(tmp.xsckamount),sum(tmp.xscktaxamount),sum(tmp. xsckcb),
sum(tmp.qtckqty),sum(tmp.qtckamount)
from(
select
‘生产入库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,sum(a.FBaseRealQty) scrkbaseqty,sum(a.FAMOUNT) scrkamount,0 cgrkqty,0 cgrkamount,0 cgrktaxamount,0 qtrkqty,0 qtrkamount,0 llckqty,0 llckamount,0 xsckqty,0 xsckamount,0 xscktaxamount,0 xsckcb,0 qtckqty,0 qtckamount
from T_PRD_INSTOCKENTRY a
left join T_PRD_INSTOCK b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=a.FWorkShopId
left join T_BD_DEPARTMENT dep on dep.FDEPTID=a.FWorkShopId
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FPRDORGID left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FPRDORGID and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FPRDORGID like ‘1%’

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname

union all

select
‘采购入库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,0 scrkbaseqty,0 scrkamount,sum(a.FRealQty) cgrkqty,sum(c.FBillAmount) cgrkamount, sum(c.FBillAllAmount) cgrktaxamount,0 qtrkqty,0 qtrkamount,0 llckqty,0 llckamount,0 xsckqty,0 xsckamount,0 xscktaxamount,0 xsckcb,0 qtckqty,0 qtckamount
from T_STK_INSTOCKENTRY a left join T_STK_INSTOCKFIN c on a.fid=c.fid
left join T_STK_INSTOCK b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=b.FStockDeptId
left join T_BD_DEPARTMENT dep on dep.FDEPTID=b.FStockDeptId
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FPurchaseOrgId left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FPurchaseOrgId and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FPurchaseOrgId=1

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname

union all

select
‘其他入库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,0 scrkbaseqty,0 scrkamount,0 cgrkqty,0 cgrkamount,0 cgrktaxamount,sum(a.FQty) qtrkqty,sum(a.FAMOUNT) qtrkamount,0 llckqty,0 llckamount,0 xsckqty,0 xsckamount,0 xscktaxamount,0 xsckcb,0 qtckqty,0 qtckamount
from T_STK_MISCELLANEOUSENTRY a
left join T_STK_MISCELLANEOUS b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=b.FDEPTID
left join T_BD_DEPARTMENT dep on dep.FDEPTID=b.FDEPTID
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FStockOrgId left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FStockOrgId and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FStockOrgId like ‘1%’

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname

union all

select
‘其他出库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,0 scrkbaseqty,0 scrkamount,0 cgrkqty,0 cgrkamount,0 cgrktaxamount,0 qtrkqty,0 qtrkamount,0 llckqty,0 llckamount,0 xsckqty,0 xsckamount,0 xscktaxamount,0 xsckcb,sum(a.FQty) qtckqty,sum(a.FAMOUNT) qtckamount
from T_STK_MISDELIVERYENTRY a
left join T_STK_MISDELIVERY b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=b.FDEPTID
left join T_BD_DEPARTMENT dep on dep.FDEPTID=b.FDEPTID
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FStockOrgId left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FStockOrgId and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FStockOrgId like ‘1%’

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname

union all

select
‘销售出库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,0 scrkbaseqty,0 scrkamount,0 cgrkqty,0cgrkamount, 0 cgrktaxamount,0 qtrkqty,0 qtrkamount,0 llckqty,0 llckamount,sum(a.FRealQty) xsckqty,sum(c.FBillAmount) xsckamount,sum(c.FBillAllAmount) xscktaxamount,sum(c.FBillCostAmount_LC) xsckcb,0 qtckqty,0 qtckamount
from T_SAL_OUTSTOCKENTRY a left join T_SAL_OUTSTOCKFIN c on a.fid=c.fid
left join T_SAL_OUTSTOCK b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=b.FSaleDeptID
left join T_BD_DEPARTMENT dep on dep.FDEPTID=b.FSaleDeptID
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FSaleOrgId left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FSaleOrgId and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FSaleOrgId=1

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname

union all

select
‘领料出库’ type,gs.fnumber gano,gsa.fname gsname,fz.FNUMBER fzno,fza.fname fzname,dep.fnumber cxno,dept.fname cxname,wla.fnumber wlno,wl.fname wlname,wl.FSPECIFICATION ggxh,unit.fnumber unitno,unita.fname unitname,0 scrkbaseqty,0scrkamount,0 cgrkqty,0 cgrkamount,0 cgrktaxamount,0 qtrkqty,0 qtrkamount,sum(a.FActualQty) llckqty,sum(a.FAMOUNT) llckamount,0 xsckqty,0 xsckamount,0 xscktaxamount,0 xsckcb,0 qtckqty,0 qtckamount
from T_PRD_PICKMTRLDATA a
left join T_PRD_PICKMTRL b on a.fid =b.fid left join T_BD_UNIT unit on a.FBaseUnitId=unit.FUNITID left join T_BD_UNIT_l unita on a.FBaseUnitId=unita.FUNITID and unita.FLOCALEID=2052
left join T_BD_DEPARTMENT_L dept on dept.FDEPTID=a.FWorkShopId
left join T_BD_DEPARTMENT dep on dep.FDEPTID=a.FWorkShopId
left join T_BD_Material_L wl on a.FMaterialId=wl.FMATERIALID left join T_BD_Material wla on a.FMaterialId=wla.FMATERIALID
left join T_BD_MATERIALGROUP fz on substring(wla.fnumber,0,3)=fz.fnumber left join T_BD_MATERIALGROUP_L fza on fz.FID=fza.fid
left join T_ORG_ORGANIZATIONS gs on gs.FORGID=b.FPRDORGID left join T_ORG_ORGANIZATIONS_l gsa on gsa.FORGID=b.FPRDORGID and gsa.FNAME like ‘%华世%’

where b.fdate>=‘2023-09-01’ and b.fdate<='2023-09-30’and b.FPRDORGID like ‘1%’

group by gs.fnumber,gsa.fname,fz.FNUMBER,fza.fname,dep.fnumber,dept.fname,wla.fnumber,wl.fname,wl.FSPECIFICATION,unit.fnumber,unita.fname
) tmp

group by tmp.gano,tmp.gsname,tmp.fzno,tmp.fzname,tmp.wlno,tmp.wlname,tmp.ggxh,tmp.unitno,tmp.unitname

order by tmp.gano,tmp.fzno,tmp.wlno

update #KD_SF set[本期采购入库税率]=[本期采购入库含税金额]/[本期采购入库不含税金额] where [本期采购入库不含税金额]<>0

update #KD_SF set[本期销售出库税率]=[本期销售出库含税金额]/[本期销售出库不含税金额] where [本期销售出库不含税金额]<>0

–数据更新

update #KD_SFC set [本期采购入库数量]=( select isnull([本期采购入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库税率]= ( select isnull([本期采购入库税率],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库含税金额]=( select isnull([本期采购入库含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库不含税金额]= ( select isnull([本期采购入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期生产入库数量]=( select isnull([本期生产入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期生产入库不含税金额]= ( select isnull([本期生产入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他入库数量]= ( select isnull([本期其他入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他入库不含税金额]= ( select isnull([本期其他入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库数量]= ( select isnull([本期销售出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库税率]= ( select isnull([本期销售出库税率],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库不含税金额]= ( select isnull([本期销售出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库含税金额]= ( select isnull([本期销售出库含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库成本]= ( select isnull([本期销售出库成本],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期领料出库数量]= ( select isnull([本期领料出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期领料出库不含税金额]= ( select isnull([本期领料出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他出库数量]= ( select isnull([本期其他出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他出库不含税金额]= ( select isnull([本期其他出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库数量]=( select isnull([本期采购入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库税率]=( select isnull([本期采购入库税率],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库含税金额]= ( select isnull([本期采购入库含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期采购入库不含税金额]= ( select isnull([本期采购入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期生产入库数量]=( select isnull([本期生产入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期生产入库不含税金额]= (select isnull([本期生产入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他入库数量]=( select isnull([本期其他入库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他入库不含税金额]=( select isnull([本期其他入库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库数量]=( select isnull([本期销售出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库税率]=( select isnull([本期销售出库税率],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库不含税金额]=( select isnull([本期销售出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库含税金额]= ( select isnull([本期销售出库含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期销售出库成本]= ( select isnull([本期销售出库成本],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期领料出库数量]= ( select isnull([本期领料出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期领料出库不含税金额]=( select isnull([本期领料出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他出库数量]=( select isnull([本期其他出库数量],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])
update #KD_SFC set [本期其他出库不含税金额]= ( select isnull([本期其他出库不含税金额],0) from #KD_SF where #KD_SF.[公司编码] =#KD_SFC.[公司编码] and #KD_SF.[产品代码] =#KD_SFC.[产品代码])

– null值处理
update #KD_SFC set [本期采购入库数量]=isnull([本期采购入库数量],0)
update #KD_SFC set [本期采购入库税率]= isnull([本期采购入库税率],0)
update #KD_SFC set [本期采购入库含税金额]=isnull([本期采购入库含税金额],0)
update #KD_SFC set [本期采购入库不含税金额]=isnull([本期采购入库不含税金额],0)
update #KD_SFC set [本期生产入库数量]=isnull([本期生产入库数量],0)
update #KD_SFC set [本期生产入库不含税金额]= isnull([本期生产入库不含税金额],0)
update #KD_SFC set [本期其他入库数量]= isnull([本期其他入库数量],0)
update #KD_SFC set [本期其他入库不含税金额]= isnull([本期其他入库不含税金额],0)
update #KD_SFC set [本期销售出库数量]= isnull([本期销售出库数量],0)
update #KD_SFC set [本期销售出库税率]= isnull([本期销售出库税率],0)
update #KD_SFC set [本期销售出库不含税金额]= isnull([本期销售出库不含税金额],0)
update #KD_SFC set [本期销售出库含税金额]=isnull([本期销售出库含税金额],0)
update #KD_SFC set [本期销售出库成本]= isnull([本期销售出库成本],0)
update #KD_SFC set [本期领料出库数量]= isnull([本期领料出库数量],0)
update #KD_SFC set [本期领料出库不含税金额]= isnull([本期领料出库不含税金额],0)
update #KD_SFC set [本期其他出库数量]=isnull([本期其他出库数量],0)
update #KD_SFC set [本期其他出库不含税金额]= isnull([本期其他出库不含税金额],0)
update #KD_SFC set [本期采购入库数量]=isnull([本期采购入库数量],0)
update #KD_SFC set [本期采购入库税率]=isnull([本期采购入库税率],0)
update #KD_SFC set [本期采购入库含税金额]= isnull([本期采购入库含税金额],0)
update #KD_SFC set [本期采购入库不含税金额]=isnull([本期采购入库不含税金额],0)
update #KD_SFC set [本期生产入库数量]=isnull([本期生产入库数量],0)
update #KD_SFC set [本期生产入库不含税金额]= isnull([本期生产入库不含税金额],0)
update #KD_SFC set [本期其他入库数量]=isnull([本期其他入库数量],0)
update #KD_SFC set [本期其他入库不含税金额]= isnull([本期其他入库不含税金额],0)
update #KD_SFC set [本期销售出库数量]=isnull([本期销售出库数量],0)
update #KD_SFC set [本期销售出库税率]=isnull([本期销售出库税率],0)
update #KD_SFC set [本期销售出库不含税金额]= isnull([本期销售出库不含税金额],0)
update #KD_SFC set [本期销售出库含税金额]=isnull([本期销售出库含税金额],0)
update #KD_SFC set [本期销售出库成本]= isnull([本期销售出库成本],0)
update #KD_SFC set [本期领料出库数量]= isnull([本期领料出库数量],0)
update #KD_SFC set [本期领料出库不含税金额]= isnull([本期领料出库不含税金额],0)
update #KD_SFC set [本期其他出库数量]=isnull([本期其他出库数量],0)
update #KD_SFC set [本期其他出库不含税金额]= isnull([本期其他出库不含税金额],0)

–更新税率

update #KD_SFC set [换算]= [本期采购入库税率]
update #KD_SFC set [换算]= [本期销售出库税率] where [本期采购入库税率]=0

–计算含税
update #KD_SFC set [上月结存含税金额]= [上月结存不含税金额]*[换算] where [换算]<>0
update #KD_SFC set [上月结存含税金额]= [上月结存不含税金额] where [换算]=0

update #KD_SFC set [本期生产入库含税金额]= [本期生产入库不含税金额]*[换算] where [换算]<>0
update #KD_SFC set [本期生产入库含税金额]= [本期生产入库不含税金额] where [换算]=0

update #KD_SFC set [本期其他入库含税金额]= [本期其他入库不含税金额]*[换算] where [换算]<>0
update #KD_SFC set [本期其他入库含税金额]= [本期其他入库不含税金额] where [换算]=0

update #KD_SFC set [本期入库含税金额合计]= [本期入库不含税金额合计]*[换算] where [换算]<>0
update #KD_SFC set [本期入库含税金额合计]= [本期入库不含税金额合计] where [换算]=0

update #KD_SFC set [本期领料出库含税金额]= [本期领料出库不含税金额]*[换算] where [换算]<>0
update #KD_SFC set [本期领料出库含税金额]= [本期领料出库不含税金额] where [换算]=0

update #KD_SFC set [本期其他出库含税金额]= [本期其他出库不含税金额]*[换算] where [换算]<>0
update #KD_SFC set [本期其他出库含税金额]= [本期其他出库不含税金额] where [换算]=0

update #KD_SFC set [本期出库含税金额合计]= [本期出库不含税金额合计]*[换算] where [换算]<>0
update #KD_SFC set [本期出库含税金额合计]= [本期出库不含税金额合计] where [换算]=0

–计算期末结存
update #KD_SFC set [期末结存数量]= [上月结存数量]+[本期其入库数量合计]-[本期出库数量合计]
update #KD_SFC set [期末结存不含税金额]=[上月结存不含税金额]+[本期入库不含税金额合计]-[本期出库不含税金额合计]
update #KD_SFC set [期末结存含税金额]=[上月结存含税金额]+[本期入库含税金额合计]-[本期出库含税金额合计]
update #KD_SFC set [期末含税单价]=[期末结存含税金额]/[期末结存数量] where [期末结存数量]<>0
select * from #KD_SFC

end

这篇关于K3Cloud 存货收发存汇总表二开优化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/456041

相关文章

小白也能轻松上手! 路由器设置优化指南

《小白也能轻松上手!路由器设置优化指南》在日常生活中,我们常常会遇到WiFi网速慢的问题,这主要受到三个方面的影响,首要原因是WiFi产品的配置优化不合理,其次是硬件性能的不足,以及宽带线路本身的质... 在数字化时代,网络已成为生活必需品,追剧、游戏、办公、学习都离不开稳定高速的网络。但很多人面对新路由器

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

SpringBoot中HTTP连接池的配置与优化

《SpringBoot中HTTP连接池的配置与优化》这篇文章主要为大家详细介绍了SpringBoot中HTTP连接池的配置与优化的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、HTTP连接池的核心价值二、Spring Boot集成方案方案1:Apache HttpCl

PyTorch高级特性与性能优化方式

《PyTorch高级特性与性能优化方式》:本文主要介绍PyTorch高级特性与性能优化方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、自动化机制1.自动微分机制2.动态计算图二、性能优化1.内存管理2.GPU加速3.多GPU训练三、分布式训练1.分布式数据

MySQL中like模糊查询的优化方案

《MySQL中like模糊查询的优化方案》在MySQL中,like模糊查询是一种常用的查询方式,但在某些情况下可能会导致性能问题,本文将介绍八种优化MySQL中like模糊查询的方法,需要的朋友可以参... 目录1. 避免以通配符开头的查询2. 使用全文索引(Full-text Index)3. 使用前缀索

C#实现高性能Excel百万数据导出优化实战指南

《C#实现高性能Excel百万数据导出优化实战指南》在日常工作中,Excel数据导出是一个常见的需求,然而,当数据量较大时,性能和内存问题往往会成为限制导出效率的瓶颈,下面我们看看C#如何结合EPPl... 目录一、技术方案核心对比二、各方案选型建议三、性能对比数据四、核心代码实现1. MiniExcel

MySQL索引的优化之LIKE模糊查询功能实现

《MySQL索引的优化之LIKE模糊查询功能实现》:本文主要介绍MySQL索引的优化之LIKE模糊查询功能实现,本文通过示例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前缀匹配优化二、后缀匹配优化三、中间匹配优化四、覆盖索引优化五、减少查询范围六、避免通配符开头七、使用外部搜索引擎八、分

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.