根据产品损耗率计算产品实际数量

原创 2004年08月03日 11:32:00

原帖地址:

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


 

根据产品损耗率计算产品实际数量

原帖地址: http://community.csdn.net/Expert/topic/3236/3236660.xml?temp=.9309046 表T1(记录的是产品加工步骤的损耗情况)Cp_N...
  • chenzhiya
  • chenzhiya
  • 2008年01月03日 15:17
  • 136

客户需求与实际产品之间的差异

一张很有意思的但是一点也不夸张地图片 
  • yao_zhuang
  • yao_zhuang
  • 2008年03月04日 18:12
  • 765

根据产品损耗率计算产品实际数量

原帖地址: http://community.csdn.net/Expert/topic/3236/3236660.xml?temp=.9309046 表T1(记录的是产品加工步骤的损耗情况)Cp_N...
  • hejishan
  • hejishan
  • 2008年01月03日 17:47
  • 395

magento如何设置产品列表页面的产品数量

1 进入magento后台 系统 2 选择配置范围,进入分类栏目 3 对前端中的数量进行设置即可...
  • Chengliangyao
  • Chengliangyao
  • 2017年01月04日 09:39
  • 666

magento 根据产品id,获取产品信息

假设产品的id 存在变量$id中 那么 $_product=Mage::getModel('catalog/product')->load($id); 这是...
  • m0sh1
  • m0sh1
  • 2014年10月20日 14:04
  • 1346

OpenCart最大最小订单量(产品数量、总金额或总重量)条件结账功能插件

如果对opencart感兴趣,可以加入QQ群:282797742进行讨论。 功能: * 检验购物车总金额(或者小计金额)是否达到最小金额要求; * 检验购物车总金额(或者小计金额)是否超过最大金...
  • OpenCartChina
  • OpenCartChina
  • 2013年12月07日 11:08
  • 1301

Magento获取指定分类下的产品和获取子分类及产品数量

Magento获取指定分类下的产品和获取子分类及产品数量 Magento首页及分类页面侧边栏经常需要调用某一个分类下的产品,例如首页的Featured Product等。这些分类一般保持不激...
  • liuxiaojun828
  • liuxiaojun828
  • 2014年09月05日 09:56
  • 1164

按每天的日期归类同一天的数据的方法实现。

/** * 按每天的日期归类对接信息公共方法 * @author shen.guoliang * @version 1.0, 2017年3月30日 参数说明 * @see [类,类#...
  • sgl520lxl
  • sgl520lxl
  • 2017年07月18日 13:49
  • 155

zencart 购买不同数量不同属性的产品插件(zencart批发插件)

先来看下zencart批发插件的效果图:   zencart 购买不同数量不同属性的产品插件下载地址:zencart批发插件.zip   安装步骤如下: 1.压缩文件包,将文件里边的YO...
  • ibmfahsion
  • ibmfahsion
  • 2012年12月20日 17:30
  • 581

商品数量很少 如何打造完美电商网站

所有的网店都有一个共同目标:卖出尽可能多的商品。除此之外,网店在方方面面都是不同的,不同的格式、设计、功能、目标市场,等等等等。因此,网店必须与企业情况契合。...
  • anhui5201314
  • anhui5201314
  • 2017年01月17日 13:36
  • 327
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:根据产品损耗率计算产品实际数量
举报原因:
原因补充:

(最多只允许输入30个字)