首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法对sql query...not求和/分组确定按FISCAL_YEAR分组时失败的原因

无法对sql query...not求和/分组确定按FISCAL_YEAR分组时失败的原因
EN

Stack Overflow用户
提问于 2014-09-13 04:19:11
回答 1查看 96关注 0票数 0

当我将group by添加到外部select时,应该能够按FISCAL_YEAR...I求和/分组的简单查询得到一个无效列错误。

代码语言:javascript
复制
SELECT 
    (round((ESC.SUPPLE_RATE * MVAL.MAXKWH),2)) SUP_COST,
    CASE
       WHEN to_number(to_char(to_date(MVAL.cread),'MM')) > 5 
         THEN to_number((to_char(to_date(MVAL.cread),'YYYY')))+1
       else to_number(to_char(to_date(MVAL.cread),'YYYY'))
    END "FISCAL_YEAR"
from 
   ((SELECT 
        to_char(last_day(ADD_MONTHS(SYSDATE, -ROWNUM)), 'DD-MON-YYYY') MONTHS_ 
     FROM 
        DUAL 
     CONNECT BY LEVEL <= 25)
LEFT join
    (SELECT 
        to_char(READING_DATE,'DD-MON-YYYY') cread,MAX(KWH_READING) MAXKWH 
     from 
        ENERGY_METRICS_VDC 
     GROUP BY 
         to_char(READING_DATE,'DD-MON-YYYY')) MVAL on MONTHS_ = MVAL.cread
LEFT JOIN
   ENERGY_SUPPLY_CHARGE ESC on (MONTHS_ between ESC.START_DATE and ESC.END_DATE))
 order by 
    FISCAL_YEAR ASC;
EN

回答 1

Stack Overflow用户

发布于 2014-09-13 09:57:24

简而言之,Oracle不允许按具有别名的计算字段(在本例中为FISCAL_YEAR)进行分组。解决这个问题的一种方法是将查询包装在另一个查询中,并在“外部”查询中进行分组:

代码语言:javascript
复制
SELECT * FROM (
  SELECT 
      (round((ESC.SUPPLE_RATE * MVAL.MAXKWH),2)) SUP_COST,
      CASE
         WHEN to_number(to_char(to_date(MVAL.cread),'MM')) > 5 
           THEN to_number((to_char(to_date(MVAL.cread),'YYYY')))+1
         else to_number(to_char(to_date(MVAL.cread),'YYYY'))
      END "FISCAL_YEAR"
  from 
     ((SELECT 
          to_char(last_day(ADD_MONTHS(SYSDATE, -ROWNUM)), 'DD-MON-YYYY') MONTHS_ 
       FROM 
          DUAL 
       CONNECT BY LEVEL <= 25)
  LEFT join
      (SELECT 
          to_char(READING_DATE,'DD-MON-YYYY') cread,MAX(KWH_READING) MAXKWH 
       from 
          ENERGY_METRICS_VDC 
       GROUP BY 
           to_char(READING_DATE,'DD-MON-YYYY')) MVAL on MONTHS_ = MVAL.cread
  LEFT JOIN
     ENERGY_SUPPLY_CHARGE ESC on (MONTHS_ between ESC.START_DATE and ESC.END_DATE))
  )
GROUP BY FISCAL_YEAR
order by FISCAL_YEAR ASC;

分享和享受。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25816225

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档