UEditor mysql string meteor encoding enums vue前端开发 angular视频教程 angularjs教程 python数据挖掘实战pdf office2016修复 linux下载器 python刷题 dwf文件怎么转成dwg 小程序下拉刷新样式 pythonlist python图形化编程 python怎么入门 python基础知识 java入门 java编程实例 java时间戳转换 学java基础 音频频谱分析软件 电池救星 零基础学python c4d文字 mac版matlab 快手规则 松下plc编程软件 快递电子面单打印软件 dw网页设计教程 联想人脸识别 图片格式转换工具 磁盘阵列教程 女漫游刷图加点 闲鱼怎么加好友 thinkcell 表单序列化 ssh免密登录
当前位置: 首页 > 学习教程  > 编程语言

记录一下最近弄的一个成本核算的SQL算法

2021/1/28 22:34:35 文章标签:

记录一下最近弄的一个成本核算的SQL算法最近一个以前的朋友介绍,帮他的一个客户的ERP搞了一套SQL的成本核算方法,简单记录一下,后面方便自己备查|最后贴上SQL算法(简化) declare n int,yscs int ----第一次生成入库运算临时表 先不取转换入库…

记录一下最近弄的一个成本核算的SQL算法


最近一个以前的朋友介绍,帮他的一个客户的ERP搞了一套SQL的成本核算方法,简单记录一下,后面方便自己备查
这个表是对业务的数据进行分析
| 表设计

最后贴上SQL算法(简化)
declare @n int,@yscs int
----第一次生成入库运算临时表 先不取转换入库的数据,因为出库成本没赋,肯定拿不到成本
if Exists(select top 1 * from sysobjects where Id=OBJECT_ID(N’rkysjq’) and xtype=‘U’)
begin
drop table rkysjq
end
select wlgg,sum(sl) as sl,(sum(je)/sum(sl)) * 1.000000 as dj into rkysjq from
(
select wlgg, sl * 1.00 as sl, je * 1.00 as je from qc where je >0
union all
select wlgg, sl * 1.00, je * 1.00 from cgrk where je >0
union all
select wlgg, sl * 1.00, je * 1.00 from py where je >0

) a group by wlgg

set @n = 1
set @yscs =8

while @n<=@yscs

begin
-----出库业务表从入库运算临时表取出单价,生成出库临时表
if Exists(select top 1 * from sysobjects where Id=OBJECT_ID(N’ckys’) and xtype=‘U’)
begin
drop table ckys
end
select t1.wlgg, t1.sl, t2.dj ,t1.zhid into ckys from
ckyw t1 left join rkysjq t2 on t1.wlgg = t2.wlgg
-----出库表取了成本后,后面再生成入库运算临时表,此次应该把转换入库能找到单价的也纳入到入库运算临时表运算

if Exists(select top 1 * from sysobjects where Id=OBJECT_ID(N’rkysjq’) and xtype=‘U’)
begin
drop table rkysjq
end
select wlgg,sum(sl) as sl,(sum(je)/sum(sl)) * 1.000000 as dj into rkysjq from
(
select wlgg, sl * 1.00 as sl, je * 1.00 as je from qc where je >0
union all
select wlgg, sl * 1.00, je * 1.00 from cgrk where je >0
union all
select wlgg, sl * 1.00, je * 1.00 from py where je >0
------把转换入库能取到金额的也加入 入库临时表运算,纯出库的转换id为0
union all
select t1.wlgg, t1.sl * 1.00 as sl, (t2.sl * 1.00) * (t2.dj * 1.00) as cje from
zhrk t1 inner join( select * from ckys where zhid <> ‘0’ ) t2 on t1.zhid = t2.zhid
where isnull(t2.dj,0) > 0
) a group by wlgg

set @n=@n+1
end


本文链接: http://www.dtmao.cc/news_show_650019.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?