不是单组功能

时间:2015-06-06 13:48:14

标签: sql oracle oracle11g oracle10g

SELECT s.*,count(numeromodule) as nbrmodule from session58 s natural join module15;

嗨,我收到此错误:不是单组功能

2 个答案:

答案 0 :(得分:1)

首先,不要使用'自然连接'。它使用列的名称,这可以随着时间的推移而改变,改变查询的作用 - 并导致它突然中断,没有明显的原因。如果它使用明确的外键关系,我心里会有一个更柔和的地方,但事实并非如此。

其次,问题是s.*。这是另一种做你想做的事情:

select s.*,
       (select count(*) from module15 m where s.col1 = m.col1 . . . ) as nbrmodule
from session58 s;

我不知道join条件是什么(不使用natural join的另一个原因)。

此外,这将返回0计数。如果您不想要它们,可以使用子查询或此where子句过滤掉它们:

where exists (select 1 from module15 m where s.col1 = m.col1 . . . )

答案 1 :(得分:0)

您必须在group by section中列出必填字段,例如

SELECT s.f1,s.f2,count(numeromodule) as nbrmodule 
from session58 s natural join module15 group by s.f1,s.f2;`