接到新任务:设计统计电子和磁电公司生产部产值分析报表。

眼下状况:

1.电子公司:取最新单位价格*入库数量

2.磁电公司:取最低价格*入库数量(实际取价的时候又没有取到最低价)

假设计算出来的结果和財务提供给生产部的报表有差异怎么办?给多 给少都不合适。

两个原则:1.合理原则 2.假设上级不允许,按领导意思办

依照当时的客户订单的不含税单位价格是最合理的,是多少就是多少

1.电子公司去客户订单的不含税单位价格

  1. -- =============================================
  2. -- Author: <David Gong>
  3. -- Create date: <2014-06-17>
  4. -- Description: <生产部KPI考核产值分析汇总>
  5. -- =============================================
  6. ALTER Procedure [dbo].[UP_Production]
  7. (
  8. @yearmonth as nvarchar(6)
  9. )
  10. as
  11. begin
  12.  
  13. select isnull(b.类别,'合计') as 类别 ,入库数量, 产值 from(
  14. select a.类别,cast(SUM(入库数量) as decimal(10,2)) as 入库数量,cast(SUM(入库数量*售价) as decimal(10,2)) as 产值 from (
  15. Select TG004 品号,TG005 品名,TG006 规格 ,TG011 入库数量,TC008 as 币种,TC009 AS 汇率,MA101 税率,
  16. case when LEFT(TG004,3)<>'203' THEN ISNULL(TD011/(1+MA101)*TC009,0)
  17. else (MB057+MB058+MB059+MB060)*1.2 END AS 售价,
  18. case when LEFT(TG004,3)='102' then 'Relay'
  19. when LEFT(TG004,3)='103' then 'PCB'
  20. when LEFT(TG004,3) in ('104','106','203') then 'BL'
  21. when LEFT(TG004,3)='101' and CHARINDEX('ATM',TG006)>0 then 'TFT'
  22. when LEFT(TG004,3)='101' and CHARINDEX('AQM',TG006)>0 then 'COG'
  23. ELSE 'COB'
  24. END 类别
  25. from MOCTG INNER JOIN MOCTF ON TF001=TG001 AND TF002=TG002
  26. left join MOCTA ON TG014=TA001 AND TG015=TA002
  27. left join COPTD ON TA026=TD001 AND TA027=TD002 AND TA028=TD003
  28. left JOIN COPTC ON TC001=TD001 AND TC002=TD002
  29. left join COPMA on TC004=MA001
  30. left join INVMB ON TG004=MB001
  31. where left(TF003,6)=@yearmonth ) a
  32. group by 类别,
  33. 类别 WITH ROLLUP) b
  34.  
  35. /*
  36. ;WITH cte as(
  37. SELECT
  38. ROW_NUMBER() OVER (PARTITION BY MB002 ORDER BY MB017 DESC) cnt,MB002 As 品号,MB004 币种,MB008 单位价格 FROM COPMB
  39. )
  40.  
  41. select c.品号, c.品名, c.规格 ,c.入库数量,a.单位价格,b.币种,b.汇率,
  42. case when LEFT(c.品号,3)<>'203' and b.币种<>'RMB' THEN a.单位价格*b.汇率
  43. when LEFT(c.品号,3)<>'203' and b.币种='RMB' THEN a.单位价格/1.17
  44. else (MB057+MB058+MB059+MB060)*1.2 END AS 售价,
  45. case when LEFT(c.品号,3)='102' then 'Relay'
  46. when LEFT(c.品号,3)='103' then 'PCB'
  47. when LEFT(c.品号,3) in ('104','106','203') then 'BL'
  48. when LEFT(c.品号,3)='101' and CHARINDEX('ATM',c.规格)>0 then 'TFT'
  49. when LEFT(c.品号,3)='101' and CHARINDEX('AQM',c.规格)>0 then 'COG'
  50. ELSE 'COB'
  51. END 分类
  52. into #Production
  53. from (
  54. Select TG004 品号,TG005 品名,TG006 规格 ,SUM(TG011) 入库数量
  55. from MOCTG INNER JOIN MOCTF ON TF001=TG001 AND TF002=TG002
  56. where left(TF003,6)=@yearmonth
  57. GROUP BY TG004,TG005,TG006
  58. ) c
  59. left join (SELECT * FROM cte WHERE cnt=1) a on a.品号=c.品号
  60. left join (SELECT MG001 as 币种, MG004 as 汇率 FROM CMSMG WHERE left(MG002,6)=@yearmonth
  61. UNION ALL
  62. Select 'RMB',1.0 ) b ON a.币种=b.币种
  63. left join INVMB on MB001=c.品号
  64.  
  65. select isnull(e.分类,'合计') as 类别,e.入库数量,e.产值 from (
  66. select 分类,cast(SUM(入库数量) as decimal(10,2)) as 入库数量, cast(SUM(入库数量*售价) as decimal(10,2)) as 产值 from #Production
  67. group by 分类,
  68. 分类 WITH ROLLUP) e
  69.  
  70. drop table #Production
  71. */
  72. end

2.磁电公司按合理原则跑出的结果比財务提供的多了40W。

领导说取最低价。

  1. -- =============================================
  2. -- Author: <David Gong>
  3. -- Create date: <2014-06-16>
  4. -- Description: <取最小价格>
  5. -- =============================================
  6. ALTER function [dbo].[GetMinPrice](
  7. @ITEM AS VARCHAR(20),
  8. @YEARMONTH AS VARCHAR(6)
  9. )returns decimal(15,2)
  10. as
  11. begin
  12.  
  13. declare @Price as decimal(10,4)
  14. select @Price=min(c.售价) from (
  15. select MB002 As 品号,MB004 币种,MB008 单位价格 ,b.汇率,
  16. case when MB004<>'RMB' THEN MB008*b.汇率
  17. else MB008/1.17 end as 售价
  18. FROM COPMB
  19. left join (SELECT MG001 as 币种, MG004 as 汇率 FROM CMSMG WHERE left(MG002,6)=@YEARMONTH
  20. UNION ALL
  21. Select 'RMB',1.0 ) b ON MB004=b.币种
  22. where MB002=@ITEM )c
  23.  
  24. return @Price
  25. end
  1. -- =============================================
  2. -- Author: <David Gong>
  3. -- Create date: <2014-06-17>
  4. -- Description: <生产部KPI考核产值分析汇总>
  5. -- =============================================
  6. ALTER Procedure [dbo].[UP_Production]
  7. (
  8. @yearmonth as nvarchar(6)
  9. )
  10. as
  11. begin
  12.  
  13. select isnull(b.类别,'合计') as 类别 ,入库数量, 产值 from(
  14. select a.类别,cast(SUM(入库数量) as decimal(10,2)) as 入库数量,cast(SUM(入库数量*售价) as decimal(10,2)) as 产值 from (
  15. Select TG004 品号,TG005 品名,TG006 规格 ,TG011 入库数量,TC008 as 币种,TC009 AS 汇率,MA101 税率,ZM.[dbo].[GetMinPrice](TG004,@yearmonth) 售价,
  16. case when CHARINDEX('。生产100%检验',MOCTG.UDF01)>0 THEN '外协'
  17. else REPLACE(MOCTG.UDF01,',生产100%检验','') end as 类别
  18. from MOCTG INNER JOIN MOCTF ON TF001=TG001 AND TF002=TG002
  19. left join MOCTA ON TG014=TA001 AND TG015=TA002
  20. left join COPTD ON TA026=TD001 AND TA027=TD002 AND TA028=TD003
  21. left JOIN COPTC ON TC001=TD001 AND TC002=TD002
  22. left join COPMA on TC004=MA001
  23. where left(TF003,6)=@yearmonth ) a
  24. group by 类别,
  25. 类别 WITH ROLLUP) b
  26. end

比对前三个月財务提供给生产部的报表 。产值少了20W左右。

20W*0.17=3.4W

少了3.4W的奖金,预计他们也会对我不满了。。。

[产值分析]生产部KPI考核之产值分析的更多相关文章

  1. BI系统与KPI指标的整合分析

    今天我们要说的是信息化时代下关于企业运营的两个热词:BI系统和KPI指标.一直到现在,企业运营的方方面面都在被数据化,成为庞大信息流的一部分,这一庞大的信息流,正以我们自己都尚未完全意识到的速度和规模 ...

  2. KPI考核

    编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! KPI考核,Key Performance Indicator的缩写,指的是关键绩效指标考核法. 中文名 KPI考核 外 ...

  3. Fresco 源码分析(一) DraweeView-DraweeHierarchy-DraweeController(MVC) DraweeView的分析

    4. Fresco的内容 为了方便学习,我们先从使用结合官方的文档来分析 4.1 Fresco客户端的使用 在使用Fresco的使用,我们直接使用的是SimpleDraweeView这个类,然后在Ac ...

  4. <八>面向对象分析之UML核心元素之分析类

    一:基本概念        ---->在那大数项目中,分析类是被忽视的一种非常有用的元素.        ---->分析类用于获取系统中主要的“职责簇”,他们代表系统的原型类,是系统必须处 ...

  5. 文《左右c++与java中国的垃圾问题的分析与解决》一bug分析

    文<左右c++与java中国的垃圾问题的分析与解决>一bug分析 DionysosLai(906391500@qq.com) 2014/10/21 在前几篇一博客<关于c++与jav ...

  6. Zepto源码分析(一)核心代码分析

    本文只分析核心的部分代码,并且在这部分代码有删减,但是不影响代码的正常运行. 目录 * 用闭包封装Zepto * 开始处理细节 * 正式处理数据(获取选择器选择的DOM) * 正式处理数据(添加DOM ...

  7. 第3阶段——内核启动分析之创建si工程和分析stext启动内核函数(4)

    目标: (1)创建Source Insight 工程,方便后面分析如何启动内核的 (2)分析uboot传递参数,链接脚本如何进入stext的  (3) 分析stext函数如何启动内核:  (3.1) ...

  8. dubbo源码分析9——ServiceBean的afterPropertiesSet方法分析

    ServiceBean的afterPropertiesSet方法是实现了InitializingBean,还是准备先做宏观分析,然后再做细致分析.下面先宏观分析:  public void after ...

  9. Linux内核分析第五周学习总结——分析system_call中断处理过程

    Linux内核分析第五周学习总结--分析system_call中断处理过程 zl + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/U ...

随机推荐

  1. 动态链接库dll,静态链接库lib, 导入库lib

    转载地址:http://www.cnblogs.com/chio/archive/2008/08/05/1261296.html 目前以lib后缀的库有两种,一种为静态链接库(Static Libar ...

  2. BZOJ 1000 A+B Problem (I/O)

    #include<cstdio> int main(){ int a,b; scanf("%d%d",&a,&b); printf("%d&q ...

  3. pyrailgun 0.24 : Python Package Index

    pyrailgun 0.24 : Python Package Index pyrailgun 0.24 Download pyrailgun-0.24.zip Fast Crawler For Py ...

  4. nginx-lua实现简单权限控制

    1,依赖软件:nginx(openresty) mysql(存储用户表)redis(存储用户登录token,有效期1周) create table account( uid integer not n ...

  5. Cow Acrobats(贪心)

    Cow Acrobats Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 3686   Accepted: 1428 Desc ...

  6. bootstrap基础样式使用

    <small> 为了给段落添加强调文本,则可以添加 class="lead" <small>本行内容是在标签内</small><br> ...

  7. [置顶] cocos2d-x 植物大战僵尸(13)类似酷跑的【同一角色不同动画间的切换的实现】

          有几天没和大家分享博客了,原因很简单,就是我在运行第12章所写的代码时:(开始一切正常,不过没多久就出现了内存泄露!.可能求成心切吧,当时没多加考虑就把代码发上去了.我在此对看过第12章得 ...

  8. ThinkPHP第十二天(Import导入第三方类库方法,独立分组文件夹结构)

    1.Import(路径+类名,基础路径): 平时导入类时有三种基础路径:Think:import('Think.core.Action');Think表示ThinkPHP/Lib基础路径,完整路径为T ...

  9. 高级UNIX环境编程3 FILE IO

    POSIX中,STDIN_FILENO,STDOUT_FILENO,STDERR_FILENO 对应0,1,2 每个打开的文件都有一个与其想关联的 "current file offset& ...

  10. python 模块BeautifulSoup使用

    BeautifulSoup是一个专门用于解析html/xml的库.官网:http://www.crummy.com/software/BeautifulSoup/ 说明,BS有了4.x的版本了.官方说 ...