我正在尝试在sql server 2008中运行查询
它根据材料组和它所属的UOM得到已经转换的数量字段的总和
查询包括以下字段
SUM(CAST(CASE WHEN A.[case_MaterialGroup] LIKE '%OIL%'
AND A.[case_UOM] = 'KG' THEN A.[case_quantity] * 0.2
WHEN A.[case_MaterialGroup] LIKE '%VOL%'
AND A.[case_UOM] = 'ACR' THEN A.[case_quantity] / 2.4711
WHEN A.[case_ProductDetails] LIKE '%FODDER RAPE%'
OR A.[case_ProductDetails] LIKE '%STUBBLE TURNIP%' THEN A.[case_quantity] / 3
WHEN @tonage LIKE '%' + A.[Case_ProductArea] + '%'
AND A.[case_UOM] = 'KG' THEN A.[case_quantity] / 1000
WHEN @kilo LIKE '%' + A.[Case_ProductArea] + '%'
AND A.[case_UOM] = 'TO' THEN A.[case_Quantity] * 1000
ELSE A.[case_quantity]
END AS NUMERIC)) AS Quantity
上面的代码工作正常,它根据材料组和UOM(计量单位)计算数量的和
现在我希望能够在计算总和之前对数量值进行另一次测试
Cast (Case When A.[case_Bltp] = 'RE' then Quantity * -1<br/>
when A.[case_Bltp] = 'G2' then 0 <br/>
else Quantity end as numeric) as Quantity, <br/>
并在Quantity的最终值上执行SUM。
我是否必须编写一个非常长的案例陈述,或者我是否可以将两种案例陈述合并?
谢谢你
瑞秋
答案 0 :(得分:0)
我已经解决了这个问题, 我做了一个嵌套的Case语句,并在where语句中添加了一个选项 如果有人想看到它,我可以在星期五添加它