这是我的查询语句:
SELECT TRANS_MSTR.branch_id
FROM TRANS_MSTR, BRANCH_MSTR
WHERE BRANCH_MSTR.branch_type_desc = 'ATM ONLY'
And ( SELECT SUM(TRANS_MSTR.trans_amount)
FROM TRANS_MSTR
WHERE TRANS_MSTR.trans_yyyymm = '201511'
GROUP BY TRANS_MSTR.branch_id) < 100;
"ORA-01427: 单行子查询返回多行"
这是我遇到的错误。我实际上不知道它的含义是什么?我的查询目标是返回分支ID和总和,其中总和小于100。
当我尝试这样修复它时:
SELECT TRANS_MSTR.branch_id,
(SELECT SUM(TRANS_MSTR.trans_amount)
FROM TRANS_MSTR
WHERE TRANS_MSTR.trans_yyyymm = '201511'
GROUP BY TRANS_MSTR.branch_id) as TransAmt
FROM TRANS_MSTR, BRANCH_MSTR
WHERE BRANCH_MSTR.branch_type_desc = 'ATM ONLY'
And TransAmt < 100;
它告诉我TRANSAMT
是一个无效的标识符。但我以为你可以为子查询设置别名?
JOIN
语法。此外,你的JOIN
缺少ON
子句,因此它实际上是一个CROSS JOIN
。 - Giorgos Betsos