首页 > 解决方案 > 无法在 CONCAT 语句中使用计算值

问题描述

Case when sim.PickPackUom='IP' then  sim.InnerPackQuantity 
else 
   im.CaseQuantity
end 
  as divqty
,concat (cast (i.QuantityOnHand as float)/divqty  ,' ',  sim.PickPackUom  )qty

concat 给出错误。如何使 divqty 值可用于 concat 或除法?

标签: sqlcaseconcatdivide

解决方案


您必须使用整个 case 条件而不是 divqty:

Case when sim.PickPackUom='IP' then  sim.InnerPackQuantity 
    else im.CaseQuantity
    end as divqty
,concat (
       cast (i.QuantityOnHand as float)/
             (Case when sim.PickPackUom='IP' then  sim.InnerPackQuantity 
                   else im.CaseQuantity end),
       ' ',  sim.PickPackUom) qty

推荐阅读