我必须将CASE语句的结果相乘。 理想的方式是什么?
我的CASE语句是:
CASE
WHEN dbo.ItemSpecs.ConfigProptext LIKE 'Coco Chair%' THEN (CEILING(dbo.WorkOrderDetails.QtyOrdered / 4))
WHEN dbo.ItemSpecs.ConfigProptext LIKE 'Cruise Bar%' THEN (CEILING(dbo.WorkOrderDetails.QtyOrdered / 4))
ELSE dbo.WorkOrderDetails.QtyOrdered
END AS NumberofCartons
所有查询的结果均应乘以0.25,然后应创建一个名为Goods Cubic Column的新列。
可以请教吗?
答案 0 :(得分:1)
将CASE表达式移至from子句中的CROSS APPLY,将使其别名可用于SELECT列表中的引用。 类似于以下内容的东西应该可以满足您的需求...
SELECT
nc.NumberofCartons,
Goods_Cubic_Column = nc.NumberofCartons * 0.25
FROM
dbo.ItemSpecs isp
JOIN dbo.WorkOrderDetails wod
ON isp.??? = wod.???
CROSS APPLY ( VALUES (
CASE
WHEN isp.ConfigProptext LIKE 'Coco Chair%' THEN (CEILING(wod.QtyOrdered / 4))
WHEN isp.ConfigProptext LIKE 'Cruise Bar%' THEN (CEILING(wod.QtyOrdered / 4))
ELSE wod.QtyOrdered
END )
) nc (NumberofCartons);