2010-01-22 684 views
5

有谁知道如何解决这个错误?这个SQL工作正常,但'cumulinvoiced'分区功能。我试图添加一个累计总数,但它似乎并没有在内联视图上工作。ORA-30483:窗口功能不允许在这里

SELECT a.mois, a.supid, a.status, COUNT (a.status), 
     SUM (COUNT (a.status) OVER (ORDER BY a.status, a.supid, a.dossier, a.mois)) cumulinvoiced 
from (SELECT TO_CHAR (impdate, 'YYYYMM') mois, 
      benefit#sup_inv_id supid, 
      SUBSTR (si_benstatus, 1, 1) status, 
      files#fil_secid dossier 
     FROM sbbenefit 
     WHERE benefit#sup_inv_id = 30515 
     AND SUBSTR(si_benstatus, 1, 1) = '2' 
    GROUP BY TO_CHAR (impdate, 'YYYYMM'), benefit#sup_inv_id ,SUBSTR (si_benstatus, 1, 1), files#fil_secid) a 
GROUP BY a.mois, a.supid, a.status 
order BY a.supid, a.mois , a.status 
+0

你能否提供一个你正在尝试的SQL的例子不起作用并生成ORA-30483? – 2010-01-22 18:59:33

回答

5

骨料COUNT应的参数来分析SUM,而不是相反:

SELECT a.mois, a.supid, a.status, COUNT (a.status), 
     SUM (COUNT (a.status)) OVER (ORDER BY a.status, a.supid, a.dossier, a.mois) cumulinvoiced 
from (SELECT TO_CHAR (impdate, 'YYYYMM') mois, 
      benefit#sup_inv_id supid, 
      SUBSTR (si_benstatus, 1, 1) status, 
      files#fil_secid dossier 
     FROM sbbenefit 
     WHERE benefit#sup_inv_id = 30515 
     AND SUBSTR(si_benstatus, 1, 1) = '2' 
    GROUP BY TO_CHAR (impdate, 'YYYYMM'), benefit#sup_inv_id ,SUBSTR (si_benstatus, 1, 1), files#fil_secid) a 
GROUP BY a.mois, a.supid, a.status 
order BY a.supid, a.mois , a.status 
0

分析和分组不倾向于一起工作。如果执行分组第一,然后做针对该结果对分析查询,我认为它应该工作:

SELECT mois, supid, status, status_count, 
     SUM (status_count OVER (ORDER BY a.status, a.supid, a.dossier, a.mois)) cumulinvoiced 
from 
(SELECT a.mois, a.supid, a.status, COUNT (a.status) status_count 
from 
(
SELECT 
TO_CHAR (impdate, 'YYYYMM') mois, 
benefit#sup_inv_id supid, 
SUBSTR (si_benstatus, 1, 1) status, 
files#fil_secid dossier 
FROM sbbenefit 
WHERE benefit#sup_inv_id = 30515 
AND SUBSTR (si_benstatus, 1, 1) = '2' 
GROUP BY 
TO_CHAR (impdate, 'YYYYMM'), 
benefit#sup_inv_id , 
SUBSTR (si_benstatus, 1, 1), 
files#fil_secid 
) a 
GROUP BY 
a.mois, a.supid, a.status 
) 
order BY 
supid, mois , status 
+3

聚合和分析可以一起工作,但聚合应该是分析的参数。 – Quassnoi 2010-01-22 19:01:41