select (
(select num from table_number where dwdm='111' and rownum<=1 )-sum(ds))/
(to_date('2015-4-16','yyyy-mm-dd')-to_date('2015-01-01','yyyy-mm-dd')+1)
from table_data n1 where dwdm ='111' and rq>=to_date('2015-01-01','yyyy-mm-dd')
(select num from table_number where dwdm='111' and rownum<=1 可以获得唯一值,还是报错,不知该如何解决
------解决思路----------------------
楼主出现你这个问题是解析的时候Oracle不知道select num from table_number where dwdm='111' and rownum<=1 是唯一啊,他按照语法解析而已(没有那么智能,知道你里面是rownum<=1)。
要么换成这个:
SELECT ((SELECT num
FROM table_number
WHERE dwdm = '111'
AND rownum <= 1) -
(SELECT SUM(ds)
FROM table_data
WHERE dwdm = '111'
AND rq >= to_date('2015-01-01', 'yyyy-mm-dd'))) /
(to_date('2015-4-16', 'yyyy-mm-dd') - to_date('2015-01-01', 'yyyy-mm-dd') + 1)
FROM dual;