库存管理,当数量为0时,成本单价如何计算呢?
------------------------------
比如一个库存表,有材料编码,数量,成本单价,成本金额 这些字段材料编码,数量,成本单价,成本金额
aaa,10,10,100
bbb,30,5,150
cccc,100,50,5000也就是满足:成本金额=数量*成本单价 的关系,
计算成本单价,就是用 成本金额/数量 得到的,但是当数量为0时,成本单价如何算呢?
假如由于冲销单据的关系,当数量为0时,库存金额还有10元。即材料编码,数量,成本单价,成本金额
dddd,0,x,10此时,这个成本单价如何计算呢?

解决方案 »

  1.   

    这不是技术问题,是业务问题。要看你想要实现什么样的需求。因为存在 成本金额=数量*成本单价 的关系,这个表不符合第三范式。成本单价和成本金额里有一个是冗余字段,设计数据模型时应该考虑把派生数据(非基本数据)从表中去除。不知道LZ所说“假如由于冲销单据的关系,当数量为0时,库存金额还有10元。”具体是什么情况?简单来说,如果成本金额是基本数据(即采购一批材料时总体确定的),则成本单价是派生数据,可以把成本单价改成计算列或视图中的字段,而不是存储在一个物理字段中。成本单价 = 成本金额 / NULLIF(数量,0)NULLIF(a,b)是SQLServer的函数,相当于CASE WHEN a = b THEN NULL ELSE a END。数量为0时,单价已没有意义,可以用NULL表示。
      

  2.   

    习惯了这样写
    成本金额/isnull(nullif(数量,0),1)