SQL Server 2008中可能的嵌套大小写语句或IF语句

时间:2014-01-15 15:53:17

标签: sql-server

我正在尝试在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。

我是否必须编写一个非常长的案例陈述,或者我是否可以将两种案例陈述合并?
谢谢你 瑞秋

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题, 我做了一个嵌套的Case语句,并在where语句中添加了一个选项 如果有人想看到它,我可以在星期五添加它