zoukankan      html  css  js  c++  java
  • 金蝶k3数据库开发成品库存结构变动表

    成品库存结构和变动表

    EXEC LIBO_CPKC #YearBegin#    --查询分析填入
    
    
    
    
    =======================================下面是储存过程主体
    
    
    
    IF EXISTS (SELECT 1 FROM sys.objects AS O WHERE O.type = 'P' AND O.name = 'LIBO_CPKC')
    BEGIN
        DROP PROCEDURE LIBO_CPKC
    END
    GO
    
    CREATE PROCEDURE LIBO_CPKC    ----<成品库存结构和变动表> 数据来源ICInvBa,库房存货余额表.
    
    ( @YEAR  INT )
    
    AS 
    BEGIN
        SET NOCOUNT ON 
    
    
    ------------------------------------下面是主数据表
    SELECT 
        A.FYear AS 会计年度,
        A.FPeriod AS 会计期间,
        B.FName AS 物料名称, 
        D.FName AS 仓位,
        C.FName AS 仓库, 
        A.FEndBal AS 期末结存余额,
        A.FEndQty AS 期末结存数量,
        A.FBatchNo AS 批号,
        SUBSTRING(A.FBatchNo,0, case when A.FBatchNo NOT LIKE '%\%' then 20 else CHARINDEX('',A.FBatchNo) end ) 规格,
        E.F_102*1.0000*E.F_103/1000000 AS 换算率,
        A.FItemID AS 物料内码,
        b.FNumber AS 物料代码,
        C.FNumber AS 仓库代码,
        D.FNumber AS 仓位代码
    into #kuroro01
    FROM ICInvBal A        --库房存货余额表
    JOIN T_ICItem B  ON  A.FItemID=B.FItemID and B.FUnitID = 434 --物料表(只取平方米)
    JOIN T_Stock C   ON  A.FStockID=C.FItemID and C.FNumber not like '9.1%' --仓库表(不包含专仓)
    JOIN t_StockPlace D  ON A.FStockPlaceID=D.FSPID  --仓位表
    LEFT JOIN t_Item_3005 E   --规格表
         ON E.FName=SUBSTRING(A.FBatchNo,0, case when A.FBatchNo NOT LIKE '%\%' then 20 else CHARINDEX('',A.FBatchNo) end )
    
    where  A.FEndQty > 0 and A.FYear = @YEAR
    
    
    -------------------------------下面是从主数据表重新排列结果
    select 
    
        case when a.仓库代码 like '06.%' and a.换算率 > 2 then '1'
             when a.仓库代码 like '06.%' and a.换算率 <= 2 then '2'
             when a.仓库代码 like '10.%' then '3'
             when a.仓库代码 like '14.%' then '4'
             when a.仓库代码 like '11.3%' then '5'
             when a.仓库代码 like '11.2%' then '6'
             when a.仓库代码 like '12.%' then '7'
             else '8' end  排序列,
    
        case when a.仓库代码 like '06.%' and a.换算率 > 2 then '大板仓大板'
             when a.仓库代码 like '06.%' and a.换算率 <= 2 then '大板仓小板'
             when a.仓库代码 like '10.%' then '加工'
             when a.仓库代码 like '14.%' then '木箱'
             when a.仓库代码 like '11.3%' then '金野'
             when a.仓库代码 like '11.2%' then '新雄俊'
             when a.仓库代码 like '12.%' then '样板'
             else '其它' end  仓库类型,
    
        sum(case when a.会计期间 =1 then a.期末结存余额 else 0 end) '1月金额',
        sum(case when a.会计期间 =1 then a.期末结存数量 else 0 end) '1月数量',
        sum(case when a.会计期间 =1 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '1月A有客户数量',
    
        sum(case when a.会计期间 =2 then a.期末结存余额 else 0 end) '2月金额',
        sum(case when a.会计期间 =2 then a.期末结存数量 else 0 end) '2月数量',
        sum(case when a.会计期间 =2 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '2月A有客户数量',
    
        sum(case when a.会计期间 =3 then a.期末结存余额 else 0 end) '3月金额',
        sum(case when a.会计期间 =3 then a.期末结存数量 else 0 end) '3月数量',
        sum(case when a.会计期间 =3 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '3月A有客户数量',
    
        sum(case when a.会计期间 =4 then a.期末结存余额 else 0 end) '4月金额',
        sum(case when a.会计期间 =4 then a.期末结存数量 else 0 end) '4月数量',
        sum(case when a.会计期间 =4 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '4月A有客户数量',
    
        sum(case when a.会计期间 =5 then a.期末结存余额 else 0 end) '5月金额',
        sum(case when a.会计期间 =5 then a.期末结存数量 else 0 end) '5月数量',
        sum(case when a.会计期间 =5 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '5月A有客户数量',
    
        sum(case when a.会计期间 =6 then a.期末结存余额 else 0 end) '6月金额',
        sum(case when a.会计期间 =6 then a.期末结存数量 else 0 end) '6月数量',
        sum(case when a.会计期间 =6 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '6月A有客户数量',
    
        sum(case when a.会计期间 =7 then a.期末结存余额 else 0 end) '7月金额',
        sum(case when a.会计期间 =7 then a.期末结存数量 else 0 end) '7月数量',
        sum(case when a.会计期间 =7 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '7月A有客户数量',
    
        sum(case when a.会计期间 =8 then a.期末结存余额 else 0 end) '8月金额',
        sum(case when a.会计期间 =8 then a.期末结存数量 else 0 end) '8月数量',
        sum(case when a.会计期间 =8 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '8月A有客户数量',
    
        sum(case when a.会计期间 =9 then a.期末结存余额 else 0 end) '9月金额',
        sum(case when a.会计期间 =9 then a.期末结存数量 else 0 end) '9月数量',
        sum(case when a.会计期间 =9 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '9月A有客户数量',
    
        sum(case when a.会计期间 =10 then a.期末结存余额 else 0 end) '10月金额',
        sum(case when a.会计期间 =10 then a.期末结存数量 else 0 end) '10月数量',
        sum(case when a.会计期间 =10 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '10月A有客户数量',
    
        sum(case when a.会计期间 =11 then a.期末结存余额 else 0 end) '11月金额',
        sum(case when a.会计期间 =11 then a.期末结存数量 else 0 end) '11月数量',
        sum(case when a.会计期间 =11 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '11月A有客户数量',
    
        sum(case when a.会计期间 =12 then a.期末结存余额 else 0 end) '12月金额',
        sum(case when a.会计期间 =12 then a.期末结存数量 else 0 end) '12月数量',
        sum(case when a.会计期间 =12 and a.规格 like '%A' and a.仓位 not like '%库存%' then a.期末结存数量 else 0 end) '12月A有客户数量'
    
    INTO #kuroro02
    from #kuroro01 a
    
    
    group by   (case when a.仓库代码 like '06.%' and a.换算率 > 2 then '大板仓大板'
                     when a.仓库代码 like '06.%' and a.换算率 <= 2 then '大板仓小板'
                     when a.仓库代码 like '10.%' then '加工'
                     when a.仓库代码 like '14.%' then '木箱'
                     when a.仓库代码 like '11.3%' then '金野'
                     when a.仓库代码 like '11.2%' then '新雄俊'
                     when a.仓库代码 like '12.%' then '样板'
                     else '其它' end ),
                (case when a.仓库代码 like '06.%' and a.换算率 > 2 then '1'
                     when a.仓库代码 like '06.%' and a.换算率 <= 2 then '2'
                     when a.仓库代码 like '10.%' then '3'
                     when a.仓库代码 like '14.%' then '4'
                     when a.仓库代码 like '11.3%' then '5'
                     when a.仓库代码 like '11.2%' then '6'
                     when a.仓库代码 like '12.%' then '7'
                     else '8' end )
    
    
    ---------------------下面是最终结果(加合计)
    select * from #kuroro02
    
    union
    
    select 
    9,'合计',
    SUM([1月金额]), SUM([1月数量]), SUM([1月A有客户数量]), 
    SUM([2月金额]), SUM([2月数量]), SUM([2月A有客户数量]),
    SUM([3月金额]), SUM([3月数量]), SUM([3月A有客户数量]),
    SUM([4月金额]), SUM([4月数量]), SUM([4月A有客户数量]),
    SUM([5月金额]), SUM([5月数量]), SUM([5月A有客户数量]),
    SUM([6月金额]), SUM([6月数量]), SUM([6月A有客户数量]),
    SUM([7月金额]), SUM([7月数量]), SUM([7月A有客户数量]),
    SUM([8月金额]), SUM([8月数量]), SUM([8月A有客户数量]),
    SUM([9月金额]), SUM([9月数量]), SUM([9月A有客户数量]),
    SUM([10月金额]), SUM([10月数量]), SUM([10月A有客户数量]),
    SUM([11月金额]), SUM([11月数量]), SUM([11月A有客户数量]),
    SUM([12月金额]), SUM([12月数量]), SUM([12月A有客户数量])
    
    from #kuroro02
    order by 1
    
    drop table #kuroro01
    drop table #kuroro02
                                 --EXEC LIBO_CPKC 2019
    end    
  • 相关阅读:
    一、上网行为管理基本操作
    tp5的自动加载机制,自动加载了哪些文件?
    tp5的执行流程
    tp5的助手函数--文件位置,以及助手函数原理和列表
    tp5中中,五个渲染函数,view,fetch,display,render,show五者的区别和联系
    tp5模板中的冒号是什么意思?具体能冒号那些函数呢?吗的,为什么网上都没有这样的回答?
    fastadmin的登陆逻辑是怎样的?会员模块,能不能移植到cms插件中,主要是界面上的整合。
    js 如何访问跨域的iframe的元素
    thinkphp5框架加载流程
    leetcode——1391.检查网格中是否存在有效路径
  • 原文地址:https://www.cnblogs.com/erph/p/11655004.html
Copyright © 2011-2022 走看看