作为较大查询的一部分,我有一些子查询,我想将其转换为CASE语句。用SQL中的计算重写子查询到CASE语句
子查询看起来像这样(和作品):
(SELECT (((SUM(DAm)-(SUM(StcCst)*-1))*100)/NULLIF(SUM(DAm),0)) AS 'DG' FROM [F0001].[dbo].[ProdTr] WHERE AcYrPr = '201601' AND ProdTr.TrTp = 1 AND [F0001].[dbo].[ProdTr].CustNo = '12773') AS dg_period_1
不过,我似乎还没有找到把这个变成一个CASE语句任何逻辑方式。
任何帮助,将不胜感激!
子查询是否只返回1行?乳清你想把它转换成一个案例陈述?尝试用一些示例数据重新创建您的场景,并根据此数据显示您的预期输出。 – Utsav
@Utsav它包含一个聚合函数和没有组语句,它_DOES_返回正好1行(不多也不少) – Psi
我看到一个问题'NULLIF(SUM(DAm),0)',因为你不能划分一个数字由null。如果SUM(DAm)'为空,你想要做什么? – Sunil