首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >甲骨文组

甲骨文组
EN

Stack Overflow用户
提问于 2015-03-18 18:41:08
回答 1查看 75关注 0票数 0

群是如何在甲骨文中使用的?我已经尝试了几个小时了,我仍然不知道为什么我会犯这个错误。原始sql是用普适语言编写的。我正试着把它转化为神谕。

我得到的错误是:

代码语言:javascript
复制
ORA-00904: "SHA": invalid identifier
00904. 00000 -  "%s: invalid identifier"

这是我的疑问:

代码语言:javascript
复制
SELECT 
  CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END AS SHA,  
  SUM(pch + pk) AS TOTALSHA
FROM hold, pos  
WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
GROUP BY SHA;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-18 18:43:29

不能按输出值分组。重复这个表达式:

代码语言:javascript
复制
SELECT 
  CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END AS SHA,  
  SUM(pch + pk) AS TOTALSHA
FROM hold, pos  
WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
GROUP BY CASE 
    WHEN (pch + pk) > 999999999 
      THEN 'j-9999 and OVER' 
    WHEN (pch + pk) >= 1000000 
      THEN 'i-1, < 999'  
  END;

或者,计算子查询中的值并将结果分组:

代码语言:javascript
复制
SELECT
  SHA,
  SUM(pch + pk) AS TOTALSHA
FROM (
  SELECT 
    CASE 
      WHEN (pch + pk) > 999999999 
        THEN 'j-9999 and OVER' 
      WHEN (pch + pk) >= 1000000 
        THEN 'i-1, < 999'  
    END AS SHA,  
    pch,
    pk
  FROM hold, pos  
  WHERE  hold.ho = pos.pho AND (pch + pk) > 0 
) AS X
GROUP BY SHA
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29130176

复制
相关文章

相似问题

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