• SQL statement for Unit conversion


    use Dynamics
    go
    
    --海关单位转库存单位
    
    ------------------------------------------
    --创建表及其相关字段
    drop table Jimmy_UnitConversionTest
    go
    CREATE TABLE Jimmy_UnitConversionTest
    (
    ItemId			varchar(41)		default('') not null,
    InventQty		decimal(24,4)	default(0)  not null,
    InventUnitid	varchar(10)		default('') not null,
    CSMQty			decimal(24,4)	default(0)  not null,
    CSMUnitId		varchar(10)		default('') not null,
    factor			decimal(24,12)  default(0)  not null
    )
    
    insert into Jimmy_UnitConversionTest(ItemId,InventQty)
    values('Col-1100',10)
    
    update a set InventUnitid = b.unitid  
    from Jimmy_UnitConversionTest a join InventTableModule b on a.itemid = b.itemid
    where b.moduletype = 0
    GO
    
    select * from Jimmy_UnitConversionTest where InventUnitid = '' 
    
    
    update a set a.factor = 1 
    from Jimmy_UnitConversionTest a
    where a.CSMUnitId = a.InventUnitid and factor = 0 
    GO
    
    select * from Jimmy_UnitConversionTest where factor = 0
    GO
    
    -- 更新与库存单位的换算
    update a set a.factor = b.factor 
    from Jimmy_UnitConversionTest a 
    join unitconvert b on a.itemid = b.itemid and a.CsmUnitId = b.fromunit and a.Inventunitid = b.tounit and a.factor = 0
    GO
    
    -- 反向更新
    update a set a.factor = 1 / b.factor 
    from Jimmy_UnitConversionTest a 
    join unitconvert b on a.itemid = b.itemid and a.CSMUnitId = b.tounit and a.Inventunitid = b.fromunit and a.factor = 0
    GO
    
    -- 系统不存在的换算率:           
    select * from Jimmy_UnitConversionTest where factor = 0
    go
    
    
    -- 找不到的直接用1做换算率
    
    update a set a.InventQty = case 
    		 when factor <> 0 then (1 / factor) * CSMQty
    		 when factor = 0  then (1 / 1) * CSMQty end
    from Jimmy_UnitConversionTest a
    GO
    
  • 相关阅读:
    《使用Hibernate开发租房系统》内部测试笔试题
    C++第十课 字符串
    【011】字符数组
    C++第九课 数组
    C++第八课 局部变量和全局变量
    【010】递归函数
    C++第七课 函数2
    【009】阅读代码
    C++第六课 函数1
    【008】查找素数
  • 原文地址:https://www.cnblogs.com/Fandyx/p/1905101.html
Copyright © 2020-2023  润新知