为什么此查询不起作用?我收到错误“不是单组组功能”。
select sum(stock.stkprice) * (select nation.exchrate from nation where nation.natcode = 'UK') from stock;
是否因为子查询可能返回多个值?它使用主键natcode,因此它应该只返回一个单一的汇率。以下是表格。
create table nation
(natcode char(3) not null,
natname char(20),
exchrate number(9,5),
constraint pk_nation primary key (natcode));
create table stock
(stkcode char(3) not null,
stkfirm char(20),
stkprice number(6,2),
stkqty number(8),
stkdiv number(5,2),
stkpe number(5),
natcode char(3),
constraint pk_stock primary key (stkcode),
constraint fk_hasnation foreign key (natcode) references nation(natcode));
答案 0 :(得分:2)
加入表,因为要用于聚合的列来自不同的表。有问题的查询在语法上是不正确的。
select sum(stock.stkprice * nation.exchrate)
from nation
join stock on stock.natcode=nation.natcode
where nation.natcode = 'UK'