Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 关于如何克服ORA-00937有什么建议吗?_Sql_Ora 00937 - Fatal编程技术网

Sql 关于如何克服ORA-00937有什么建议吗?

Sql 关于如何克服ORA-00937有什么建议吗?,sql,ora-00937,Sql,Ora 00937,它总是带着错误回来,有什么建议吗 感谢您的合作实际上SQL中有几个问题。试试这个 select s.S_FIRST||' '||s.S_LAST, sum(c.CREDITS) from enrollment e,student s,course c where s.s_id=e.S_ID and c.COURSE_NO=e.C_SEC_ID group by s.S_ID having sum(c.credits)>12 order by s.s_id; Error report: S

它总是带着错误回来,有什么建议吗


感谢您的合作

实际上SQL中有几个问题。试试这个

select s.S_FIRST||' '||s.S_LAST, sum(c.CREDITS) from enrollment e,student s,course c
where s.s_id=e.S_ID
and c.COURSE_NO=e.C_SEC_ID
group by s.S_ID
having sum(c.credits)>12 order by s.s_id;

Error report:
SQL Error: ORA-00979: not a GROUP BY expression
00979. 00000 -  "not a GROUP BY expression"
必须按所有非聚集字段分组。此外,我不认为您可以对不在查询中的字段进行排序(因此也需要在选择列表和分组依据中)。文档中的错误是


基于你的无效数字评论,我认为你的加入是错误的课程号,或者也许学分不是一个数字或什么的

您需要将所有列都包括在选择列表中,以便分组。看这里

从文件

原因:GROUP BY子句不包含 SELECT子句。选择未包含在组中的表达式 函数,如平均值、计数、最大值、最小值、总和、STDEV或方差,必须 在GROUPBY子句中列出

操作:在GROUP BY子句中包含所有 非分组函数参数

补救措施是,将select列表中的所有列包含到您的
group by
子句中。将您的查询更改为

select s.s_id, s.S_FIRST||' '||s.S_LAST name, sum(c.CREDITS) sum_credits
from enrollment e,student s,course c
where s.s_id=e.S_ID
and c.COURSE_NO=e.C_SEC_ID
group by 1, 2
having sum(c.credits) > 12 
order by s.s_id;
根据Oracle规范错误
ORA-01722
表示
尝试将字符串转换为数字失败,因为该字符串不是有效的数字文字。

确保所有字段都是INT类型或相同类型。是
c.CREDITS
INT类型吗

s.s\u id
e.s\u id
是否属于同一类型


c.COURSE\u NO
e.c\u SEC\u ID
是同一类型的吗?

嘿,兄弟,它返回了这个错误报告:SQL错误:ORA-01722:无效号码01722。00000-“无效号码”@user3651097,如果有帮助,别忘了接受答案。
select s.S_FIRST||' '||s.S_LAST as fullname, s.s_id, 
sum(c.CREDITS) as total_credit from enrollment e,
student s,course c
where s.s_id=e.S_ID
and c.COURSE_NO=e.C_SEC_ID
group by s.S_FIRST||' '||s.S_LAST
having total_credit > 12 
order by s.s_id;