我有以下查询..
Select Emp_key,date_key,
ROUND(SUM(CASE WHEN Amt_2 <> 0 THEN Amt_1/ Amt_2 END),4) AS Net_Amt
from Salary
group by Emp_key,date_key;
此查询的结果是什么?
1.Sum[(Amt_1/ Amt_2) + (Amt_1/ Amt_2) + (Amt_1/ Amt_2) + (Amt_1/ Amt_2) + ......]
或
2.Sum(Amt_1) / Sum(Amt_2)
我希望Net_Amt
成为Sum(Amt_1) / Sum(Amt_2)
答案 0 :(得分:0)
此计算基本上会产生您提供的第一个选项。
如果您想选择两个总和的除法,请执行以下操作:
SELECT Emp_key, date_key, ROUND(SUM(Amt_1) / SUM(Amt_2), 4) AS Net_Amt
FROM salary
GROUP BY Emp_key,date_key;
如果您担心SUM(Amt_2)
为零,您仍然可以使用case
声明来处理:
SELECT Emp_key,
date_key,
CASE WHEN SUM(Amt_2) <> 0
THEN ROUND(SUM(Amt_1) / SUM(Amt_2), 4)
END AS Net_Amt
FROM salary
GROUP BY Emp_key,date_key;