好的,我有三张桌子:剧院,眼镜和票。剧院有一个或多个眼镜,一张或多张票卖了一张或多张*因此,id_theater是表眼镜中的外键,id_spectacle是桌券中的外键。在桌票中,我有ticket_price和id_ticket,而用id_ticket,我计算出眼镜的门票数量。每个剧院都有一个或多个眼镜。眼镜的数值计算为:count(tickets.id_ticket) * tickets.ticket_price。在计算眼镜的值之后,我需要收集眼镜的值,以找到剧院的每个值,并为此使用SUM()。
,我需要编写一个查询,其中我需要计算每个剧院获得的总价值,并按值进行排序。为此,我需要使用SUM()函数。我尝试了很多不同的选项,但是我有不同的错误。当我试图运行此程序时,出现了以下错误:
SQL Error: ORA-00937: not a single-group group functionSELECT
theater.id_theater,
SUM(count(tickets.id_ticket) * tickets.id_ticket) total_theater
FROM spectacles, theater
GROUP BY theater.id_theater
ORDER BY total_theater DESC;对于这个问题,我必须使用SUM,但我现在真的不知道该怎么做,我希望得到任何帮助。
发布于 2021-01-06 08:48:24
您可以使用普通的INNER JOIN和sum,如下所示:
SELECT theater.id_theater,
SUM(tkt.ticket_price) total_theater_tkt_price
FROM spectacles s
join theater t on t.id_theatre = s.id_theatre
JOIN tickets tkt on tkt.id_spectacle = s.id_spectacle
GROUP BY t.id_theater
ORDER BY total_theater_tkt_price DESC;备注:始终使用标准ANSI-联接。
https://stackoverflow.com/questions/65592512
复制相似问题