我正在尝试找出如何根据一列的计数乘以联接表的另一列的数目来创建一列。
以下是我到目前为止尝试过的方法:
尝试1:
select a.course_id, sum(count(*)*c.FEE) as "Income", c.COURSE_NAME,c.STORE,c.VENUE,c.COURSE_LEVEL,c.COURSE_DATE,c.DURATION,c.FEE,c.STAFF
from attendancecheck a
inner join course c
on a.course_id = c.course_id
group by a.course_id, c.COURSE_NAME,c.STORE,c.VENUE,c.COURSE_LEVEL,c.COURSE_DATE,c.DURATION,c.FEE,c.STAFF
order by "Income"
我收到错误消息:ORA-00937:不是单组分组功能
尝试2:
select a.course_id, sum(People_on_course * c.Fee) as "Income", c.COURSE_NAME,c.STORE,c.VENUE,c.COURSE_LEVEL,c.COURSE_DATE,c.DURATION,c.FEE,c.STAFF
from (SELECT COUNT(a.participant_id) as People_on_course
from attendancecheck a)
inner join course c
on a.course_id = c.course_id
group by a.course_id, c.COURSE_NAME,c.STORE,c.VENUE,c.COURSE_LEVEL,c.COURSE_DATE,c.DURATION,c.FEE,c.STAFF
order by "Income"
我收到错误消息:ORA-00904:“ A”。“ COURSE_ID”:无效的标识符
如果有人可以在正确的方向上指导我,那将很棒。
干杯,丹尼尔
您为什么要汇总已经计算在内的参与者?只需使用count
,再乘以费用,仅此而已。申请,left join
而不是join
万一没有参与者参加任何课程。您还可以使用子查询来计算每门课程的参与者。
select c.course_id, count(a.participant_id) * c.fee as income, c.course_name,
c.store, c.venue, c.course_level, c.course_date, c.duration, c.fee, c.staff
from course c
left join attendancecheck a on a.course_id = c.course_id
group by c.course_id, c.course_name, c.store, c.venue,
c.course_level, c.course_date, c.duration, c.fee, c.staff
order by income
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句