我正在用Oracle编写一个简单的查询,
SELECT CN.MyColumn1,
SUM(CN.MyColumn2 - CN.MyColumn3 + CN.MyColumn4),
(CASE
WHEN EXISTS (
SELECT 't'
FROM Table1 CN2
WHERE CN2.MyColumn1 = CN.MyColumn1
AND CN2.MyColumn5= 0
AND (CN2.MyColumn2- CN2.MyColumn3+ CN2.MyColumn4) >=
SUM(CN.MyColumn2- CN.MyColumn3 + CN.MyColumn4) * 0.5)
THEN 'Yes'
ELSE 'No'
END)
FROM Table1 CN
GROUP BY CN.MyColumn1
HAVING SUM (CN.MyColumn2- CN.MyColumn3 + CN.MyColumn4) < 6;
但是我得到
SQL错误[920] [42000]:ORA-00920:无效的关系运算符
答案 0 :(得分:1)
问题源于
SUM
聚合用于SUM(CN.MyColumn2- CN.MyColumn3 + CN.MyColumn4) * 0.5)
需要在HAVING
子句中使用。您可以尝试使用以下一种:
SELECT CN.MyColumn1,
SUM(CN.MyColumn2 - CN.MyColumn3 + CN.MyColumn4),
(CASE
WHEN EXISTS (
SELECT 't'
FROM Table1 CN2
WHERE CN2.MyColumn1 = CN.MyColumn1
AND CN2.MyColumn5= 0
HAVING (CN2.MyColumn2- CN2.MyColumn3+ CN2.MyColumn4) >=
SUM(CN.MyColumn2- CN.MyColumn3 + CN.MyColumn4) * 0.5)
THEN 'Yes'
ELSE 'No'
END)
FROM Table1 CN
GROUP BY CN.MyColumn1
HAVING SUM (CN.MyColumn2- CN.MyColumn3 + CN.MyColumn4) < 6;