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

相关文章

SpringBoot首笔交易慢问题排查与优化方案

《SpringBoot首笔交易慢问题排查与优化方案》在我们的微服务项目中,遇到这样的问题:应用启动后,第一笔交易响应耗时高达4、5秒,而后续请求均能在毫秒级完成,这不仅触发监控告警,也极大影响了用户体... 目录问题背景排查步骤1. 日志分析2. 性能工具定位优化方案:提前预热各种资源1. Flowable

SpringBoot3实现Gzip压缩优化的技术指南

《SpringBoot3实现Gzip压缩优化的技术指南》随着Web应用的用户量和数据量增加,网络带宽和页面加载速度逐渐成为瓶颈,为了减少数据传输量,提高用户体验,我们可以使用Gzip压缩HTTP响应,... 目录1、简述2、配置2.1 添加依赖2.2 配置 Gzip 压缩3、服务端应用4、前端应用4.1 N

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S

Python如何使用__slots__实现节省内存和性能优化

《Python如何使用__slots__实现节省内存和性能优化》你有想过,一个小小的__slots__能让你的Python类内存消耗直接减半吗,没错,今天咱们要聊的就是这个让人眼前一亮的技巧,感兴趣的... 目录背景:内存吃得满满的类__slots__:你的内存管理小助手举个大概的例子:看看效果如何?1.

一文详解SpringBoot响应压缩功能的配置与优化

《一文详解SpringBoot响应压缩功能的配置与优化》SpringBoot的响应压缩功能基于智能协商机制,需同时满足很多条件,本文主要为大家详细介绍了SpringBoot响应压缩功能的配置与优化,需... 目录一、核心工作机制1.1 自动协商触发条件1.2 压缩处理流程二、配置方案详解2.1 基础YAML

MySQL中慢SQL优化的不同方式介绍

《MySQL中慢SQL优化的不同方式介绍》慢SQL的优化,主要从两个方面考虑,SQL语句本身的优化,以及数据库设计的优化,下面小编就来给大家介绍一下有哪些方式可以优化慢SQL吧... 目录避免不必要的列分页优化索引优化JOIN 的优化排序优化UNION 优化慢 SQL 的优化,主要从两个方面考虑,SQL 语

MySQL中慢SQL优化方法的完整指南

《MySQL中慢SQL优化方法的完整指南》当数据库响应时间超过500ms时,系统将面临三大灾难链式反应,所以本文将为大家介绍一下MySQL中慢SQL优化的常用方法,有需要的小伙伴可以了解下... 目录一、慢SQL的致命影响二、精准定位问题SQL1. 启用慢查询日志2. 诊断黄金三件套三、六大核心优化方案方案

Redis中高并发读写性能的深度解析与优化

《Redis中高并发读写性能的深度解析与优化》Redis作为一款高性能的内存数据库,广泛应用于缓存、消息队列、实时统计等场景,本文将深入探讨Redis的读写并发能力,感兴趣的小伙伴可以了解下... 目录引言一、Redis 并发能力概述1.1 Redis 的读写性能1.2 影响 Redis 并发能力的因素二、

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜