Sql 如何用大小写表达式修复ORA-00905缺少的关键字

Sql 如何用大小写表达式修复ORA-00905缺少的关键字,sql,oracle,ora-00905,Sql,Oracle,Ora 00905,我在下面标记的行中有问题 我需要像这样展示 debits | credits | total debits | total credits SQL查询是: SELECT cv_amount, case when cv_amount > 0 then cv_amount else 0 end as debits, case when cv_amount < 0 then cv_amount*-1 else 0 end as credits,

我在下面标记的行中有问题

我需要像这样展示

debits | credits | total debits | total credits
SQL查询是:

SELECT cv_amount,
       case when cv_amount > 0 then cv_amount else 0 end as debits, 
       case when cv_amount < 0 then cv_amount*-1 else 0 end as credits,
       sum(case when cv_amount > 0 then cv_amount else 0)--- ERROR SHOWEN HERE--- end as d, 
       sum(case when cv_amount < 0 then cv_amount*-1 else 0) end as c
FROM dof
where currency_code = 368 
  AND to_DATE('05/05/19', 'DD/MM/YY') and to_DATE('05/05/19', 'DD/MM/YY')
group by cv_amount

以下两行中存在语法错误

sum(case when cv_amount > 0 then cv_amount else 0) end as d, 
sum(case when cv_amount < 0 then cv_amount*-1 else 0) end as c

以下两行中存在语法错误

sum(case when cv_amount > 0 then cv_amount else 0) end as d, 
sum(case when cv_amount < 0 then cv_amount*-1 else 0) end as c
您不需要真正的案例:

select cv_amount,
       greatest(cv_amount, 0) as debits,
       abs(least(cv_amount, 0)) as credits,
       sum(greatest(cv_amount, 0)) as d,
       sum(abs(least(cv_amount, 0))) as c
from dof
where currency_code = 368 and
      <something goes here> = date '2019-05-05'
group by cv_amount;
更大的问题是where条款没有意义。而按cv_数量进行的汇总也没有真正意义。

您不需要这样的案例:

select cv_amount,
       greatest(cv_amount, 0) as debits,
       abs(least(cv_amount, 0)) as credits,
       sum(greatest(cv_amount, 0)) as d,
       sum(abs(least(cv_amount, 0))) as c
from dof
where currency_code = 368 and
      <something goes here> = date '2019-05-05'
group by cv_amount;

更大的问题是where条款没有意义。而按cv_数量进行的合计也没有真正意义。

显示了哪一个确切的错误?您试图解决什么问题?看起来像是Oracle错误代码。你确定你在使用MySQL吗?!?两个大小写表达式没有结束关键字。为什么不显示预期的输出并提供一些示例数据?您的查询似乎有一些错误:GROUP BY的聚合函数使用了错误的列,WHERE子句to_date部分中的条件错误。显示的确切错误是什么?您试图解决什么问题?看起来像是Oracle错误代码。你确定你在使用MySQL吗?!?两个大小写表达式没有结束关键字。为什么不显示预期的输出并提供一些示例数据?您的查询似乎有一些错误:GROUP BY的聚合函数使用了错误的列,WHERE子句中的条件错误到日期部分。