原帖地址:

http://community.csdn.net/Expert/topic/3236/3236660.xml?temp=.9309046

表T1(记录的是产品加工步骤的损耗情况)
Cp_No(产品编码)   Cp_Step(加工步骤)         Cp_Shl(损耗率)
001                    1                       0.1
001                    2                       0.15
001                    3                       0.2
002                    1                       0.3
002                    2                       0.15
003                   ...                      ...

表T2(记录产品经过加工步骤的最终数量)
Cp_No(产品编码)       finally_Sl(最终数量)
 001                      5
 002                      7
 ...                     ...
要求:
根据T2表提供的最终数量以及T1表提供的损耗率,算出每个加工步骤的实际数量得到表T3
Cp_No(产品编码)      Cp_Step(加工步骤)    Real_Sl(实际数量)
001                    1                  7.35/(1-0.1) =8.17
001                    2                  6.25/(1-0.15)=7.35
001                    3                  5/(1-0.2)    =6.25
002                    1                  8.24/(1-0.3) =11.77
002                    2                  7/(1-0.15)   =8.24

Cp_No是Varchar,Cp_Step是int,Cp_Shl是Numeric(18,4),Finally_Sl,Real_Sl是Numeric(18,4)
T2中的Finally_Sl 是经过T1中的所有加工步骤最终要得到的数量,比如001产品经过1,2,3三个步骤的最终数量是5。T3中的Real_Sl是由Finally_Sl根据每个加工步骤的损耗率得到,比如001由最终数量5可以得到步骤3的实际数量:5/(1-0.2)=6.25,然后根据6.25得到步骤2的实际数量6.25/(1-0.15)=7.35

-----------------------------------------------------------------------------------------

--测试

--测试数据
create table T1(Cp_No varchar(10),Cp_Step int,Cp_Shl numeric(18,4))
insert T1 select '001',1,0.1
union all select '001',2,0.15
union all select '001',3,0.2
union all select '002',1,0.3
union all select '002',2,0.15

create table T2(Cp_No varchar(10),finally_Sl int)
insert T2 select '001',5
union all select '002',7
go

--方法1,直接计算(用辅助表)
select a.Cp_No,a.Cp_Step
 ,Cp_Shl=1-a.Cp_Shl,b.finally_Sl
 ,Real_Sl=cast(null as numeric(18,2))
into T3
from T1 a,T2 b
where a.Cp_No=b.Cp_No
order by a.Cp_No,a.Cp_Step desc

--计算 Real_Sl 列
declare @id varchar(10),@sl numeric(18,4)
update T3 set @sl=case @id when Cp_no then @sl else finally_Sl end/Cp_Shl
 ,Real_Sl=@sl,@id=Cp_no

--显示处理结果
select Cp_No,Cp_Step,Real_Sl
from T3
order by Cp_No,Cp_Step
go

/*--测试结果

Cp_No      Cp_Step     Real_Sl  
---------- ----------- ----------
001        1           8.17
001        2           7.35
001        3           6.25
002        1           11.76
002        2           8.24

(所影响的行数为 5 行)
--*/

--方法2,写自定义计算函数,实现直接出结果
--计算 Cp_Shl 的函数
create function f_calc(
@Cp_No varchar(10),
@Cp_Step int,
@finally_Sl int
)returns numeric(18,2)
as
begin
 declare @r numeric(18,2)
 set @r=@finally_Sl
 select @r=@r/(1-Cp_Shl) from T1
 where Cp_No=@Cp_No
  and Cp_Step>=@Cp_Step
 order by Cp_Step desc 
 return(@r)
end
go

--调用函数实现查询
select a.Cp_No,a.Cp_Step
 ,Real_Sl=dbo.f_calc(a.Cp_No,a.Cp_Step,b.finally_Sl)
from T1 a,T2 b
where a.Cp_No=b.Cp_No
go

/*--测试结果

Cp_No      Cp_Step     Real_Sl  
---------- ----------- ----------
001        1           8.17
001        2           7.35
001        3           6.25
002        1           11.76
002        2           8.24

(所影响的行数为 5 行)
--*/

--删除测试
drop table T1,T2,T3
drop function f_calc

根据产品损耗率计算产品实际数量相关推荐

  1. 阿里云实时计算产品经理李佳林:基于 Flink 构建大规模风控系统的技术实战

    本⽂由 Flink 社区志愿者邹志业整理,内容来源⾃阿里云实时计算产品经理李佳林在 7 月 5 日 Flink 峰会(CSDN 云原生系列)的演讲.主要内容包括:基于 Flink 构建风控系统.阿里风 ...

  2. ECSHOP产品详情页修改商品购买数量并实时更新商品总价的实现与优化

    当用户购买产品时,可能有时候不仅仅买一件商品,那么当客户购买多个当前产品时如果能同时显示总价,那么无疑将增加我们网站的亲和度!实现这个办法并不难,就是增加一个即时计算商品总价的js代码,这个网络有一篇 ...

  3. 产品良品率测试领域的方法统计与未来细分发展

    现在是2019/08/14,19年转眼间已经过去了半年,大夏天不知不觉就这么蒙过去了.春江水暖鸭先知,2018年贸易战以来,我们一线公司也漂逐沉浮,第一时间感受到了来自自由开放市场的恶意.A股跌回20 ...

  4. 案例解读华为隐私计算产品TICS如何实现城市跨部门数据隐私计算

    摘要:本文介绍华为可信智能计算服务TICs是如何助力城市跨部门数据实现隐私计算的. 本文分享自华为云社区<基于华为隐私计算产品TICS实现城市跨部门数据隐私计算,助力实现普惠金融>,作者: ...

  5. 华为云大数据存储的冗余方式是三副本_阿里云大数据产品 | 大数据计算

    阿里云大数据计算产品包括MaxCompute.E-MapReduce和实时计算(Alibaba Cloud Realtime Compute). 一.MaxCompute 1.MaxCompute概述 ...

  6. 华为计算产品备件查询助手

    华为计算产品备件查询助手 https://support-it.huawei.com/server-spareparts/#/spareparts

  7. 阿里云弹性计算产品负责人:让客户用上本地化的公共云

    简介:5 月 28 日,在 2021 阿里云峰会上 "企业四种架构及部署方案"专场中,阿里云弹性计算产品负责人王志坤,基于云多种部署形态,带来了<企业本地化.低延时.高安全云 ...

  8. 案例:可视化分析 + 预测模型,锁定影响产品良率的根因!

    在以半导体为首的高科技高端制造领域,产品良率一直是企业最为关注的指标.良好的产品品质是品牌口碑的最佳代言.那么,在面临生产线因为良率过低的警报而突然停产的状况,工程师团队如何快速响应和应对?如何快速锁 ...

  9. 弹性计算产品专家张新涛:阿里云视觉计算的思考与实践

    2023 年 3 月 23 日,NVIDIA GTC 开发者大会阿里云开发者社区观看入口正式开放,阿里云弹性计算产品专家张新涛带来题为<重构计算,驱动视界:阿里云视觉计算思考与实践>的分享 ...

最新文章

  1. 这些常识一直在损害健康
  2. 零基础入门Python:基本命令、函数、数据结构
  3. 双极结型三极管及放大电路基础
  4. java memcmp_C 库函数
  5. 微课|中学生可以这样学Python(5.5.3节):字符串格式化2
  6. 从零开始学习python编程-从零开始学Python程序设计
  7. 3月3 pytorch模型保存的.pt, .pth, .pkl的pytorch模型文件,只是后缀不同而已(仅此而已)
  8. Uboot详细解析1
  9. ad软件画pcb方法总结_PCB各层介绍及AD软件画PCB时的规则
  10. freeCAD transform stepamp;amp; stp to stl logging py2exe 打包
  11. 中国手机摄像头产业链
  12. 【每日一知】什么是TAOCP? (2021.02.07)
  13. 封装0805跟0603有什么区别,只存在大小的区别么???
  14. 超级炫酷个人引导页自适应HTML源码
  15. masm32基础使用(win10+cmd)
  16. var_threshold
  17. 计算机不显示桌面文件夹,电脑保存文件路径不显示桌面怎么办
  18. html改变按钮样式
  19. gromacs ngmx_gromacs初学入门
  20. I'm coming now.

热门文章

  1. 加拿大华人家務助理走俏
  2. RESTful API?What is it?
  3. 计算机实训安全考试答案,(实验室安全在线测试题答案.doc
  4. 全能音视频转码 MediaCoder 0.8.36.5757 专业版
  5. 做副业月薪12K+,工作效率翻倍,Python是个什么宝藏?
  6. 方寸知识篇 - 数字图像处理(一)- 图像压缩
  7. 【问题记录】tp5文件上传$_FILES有值request中file却为空
  8. LabVIEW字符串正常显示与十六进制显示相互强制转换
  9. 如何有效的进行7S管理_7S巡检管理系统基于微信的7S管理
  10. 高斯列主元消元法求解线性方程组