【发布时间】:2016-03-17 18:28:03
【问题描述】:
以下代码返回 ORA-01427:单行子查询返回多行,但我无法确定为什么会这样。该语句的哪一部分被视为子查询?
SELECT
ada.schoolid,
s.dcid,
s.lastfirst,
s.grade_level,
s.home_room,
s.home_phone,
SUM(ada.membershipvalue) - SUM(ada.attendancevalue) absences,
SUM(ada.membershipvalue) membership,
ROUND( ( SUM( ada.membershipvalue ) - SUM(ada.attendancevalue) ) / SUM( ada.membershipvalue ) * 100, 2) absenceRate
FROM
students s
JOIN schools schl ON schl.school_number = s.schoolid
JOIN ps_adaadm_defaults_all ada ON ada.studentid = s.id and ada.schoolid in (87)
WHERE
s.pl_language = '31516argul'
AND to_date(ada.calendardate) >= to_date('9/01/2007', 'mm/dd/yyyy')
AND to_date(ada.calendardate) <= to_date('6/20/2016','mm/dd/yyyy' )
AND ada.membershipvalue > 0
GROUP BY
ada.schoolid,
s.dcid,
s.lastfirst,
s.grade_level,
s.home_room,
s.home_phone
ORDER BY
s.lastfirst ASC
【问题讨论】:
-
这些都是表格吗?还是您正在使用某些视图?这是整个代码吗?
-
@Lamak ps_adaadm_defaults_all 是一个视图。这是整个代码。
-
你能做到
SELECT * FROM ps_adaadm_defaults_all吗? -
这是您正在运行并收到错误的确切代码吗? 87 总是这样硬编码吗?
-
你也可以发布该视图的定义吗?虽然不太可能,但我见过一些情况,视图中的一些奇怪的东西会导致它们的连接方式出现意外错误。