ORA-00979:不是基于表达式的分组在Oracle中使用日期

时间:2015-01-09 09:31:10

标签: sql oracle

我有一个名为sDateTime的Date数据类型列,我希望按日期分组选择数据,实际上我想显示特定月份每天的销售总额。

sDateTime是Date数据类型,但它也存储时间,因此我需要将其转换为仅日期格式。我正在使用以下查询引发异常 ORA-00979 任何人都可以帮助我。

SELECT sdatetime   AS Sale_Date,
       SUM(amount) AS Sale
FROM   sales
GROUP  BY To_char(sdatetime, 'yyyy-MM-dd')
HAVING sdatetime BETWEEN To_date('2015-01-01', 'yyyy-MM-dd') AND
                         To_date('2015-01-09', 'yyyy-MM-dd') 

1 个答案:

答案 0 :(得分:2)

重写这样的查询

select to_char(sDateTime,'yyyy-MM-dd') AS Sale_Date, SUM(Amount) AS Sale 
FROM SALES  where sDateTime between to_date('2015-01-01','yyyy-MM-dd')
     and to_date('2015-01-09','yyyy-MM-dd') 
GROUP BY to_char(sDateTime,'yyyy-MM-dd')