SQL> SELECT /*+ all_rows */AE10.AAB999 AE10_AAB999,
2 201007 START_DATE,
3 201007 END_DATE,
4 AE10.AAB001 AE10_AAB001,
5 (SELECT AAB119
6 FROM ZB21
7 WHERE AAB001 = AE10.AAB001
8 AND AAE100 = '1') PER_NUMBER,
9 (SELECT AAB120
10 FROM ZB21
11 WHERE AAB001 = AE10.AAB001
12 AND AAE100 = '1') TOTAL_BASE,
13 (SELECT AAB120 * 0.03
14 FROM ZB21
15 WHERE AAB001 = AE10.AAB001
16 AND AAE100 = '1') COLLECT_MONEY,
17 (SELECT AAB033
18 FROM ZB21
19 WHERE AAB001 = AE10.AAB001
20 AND AAE100 = '1') COLLECT_TYPE,
21 AE10.AAE044 AE10_AAE044,
22 AE10.AAB019 AE10_AAB019
23 FROM AE10
24 WHERE NOT EXISTS (SELECT 1
25 FROM AB07
26 WHERE AB07.AAZ010 = AE10.AAB001
27 AND AAE002 = 201007
28 AND AAA115 = '0'
29 and aae140 = '21')
30 AND EXISTS (SELECT 1
31 FROM AB02
32 WHERE AAB001 = AE10.AAB001
33 AND AAB051 = '1'
34 AND AAE140 = '21')
35 AND EXISTS (SELECT 1
36 FROM ZB21
37 WHERE AAB001 = AE10.AAB001
38 AND AAE100 = '1'
39 AND AAE041 <= 201007
40 AND NVL(AAE042, 201007) >= 201007);
ERROR:
ORA-01427: single-row subquery returns more than one row
已选择300行。
已用时间: 00: 00: 02.47
晚上做账的时候用户反映程序报错,截取到报错的SQL,在SQLPLUS里执行结果如上。我一直以为如果有这种错误,是执行不会返回结果就报错,可没想到都返回了300行了,才报的错,大家有什么看法,正常吗?SQL语句我还在看。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22034023/viewspace-666768/
,如需转载,请注明出处,否则将追究法律责任。