UNION ALL 报错:缺少右括号

来源:百度知道 编辑:UC知道 时间:2024/06/06 04:55:03
oracle数据库环境,sql是这样的:

SELECT A.MANAGER,
A.MONTH_ID,
A.CORR
FROM (
SELECT RC.MANAGER,
RA.MONTH_ID
,CASE WHEN RA.QTY_SOLD != 0 THEN (RA.AMT_SOLD/RA.QTY_SOLD)*250 ELSE 0 END CORR
FROM RM_CUST_ANALYSIS RA,RM_CUST RC
WHERE RC.CUST_ID = RA.CUST_ID
AND RA.CUST_ID IN ('1037090400006','1037090400007','1037090400009')
AND RA.MONTH_ID >= '200901'
AND RA.MONTH_ID <= '200912'
ORDER BY RA.CUST_ID,RA.MONTH_ID
)
UNION ALL (
SELECT
RA.MONTH_ID,MAX('平均') MANAGER
,AVG(CASE WHEN RA.QTY_SOLD != 0 THEN (RA.AMT_SOLD/RA.QTY_SOLD)*250 ELSE 0 END) CORR
FROM RM_CUST_ANALYSIS RA
WHERE
RA.CUST_ID IN ('1037090400006','1037090400007','1037090400009')
AND RA.MONTH_ID >= '200901'
AND RA.MONTH_ID <= '200912'
GROUP BY RA.MONTH_ID ORDER BY RA.MONTH_ID
) A
;

为什么

SELECT A.MANAGER,
A.MONTH_ID,
A.CORR
FROM (
SELECT
RA.MONTH_ID,
RC.MANAGER
,CASE WHEN RA.QTY_SOLD != 0 THEN (RA.AMT_SOLD/RA.QTY_SOLD)*250 ELSE 0 END CORR
FROM RM_CUST_ANALYSIS RA,RM_CUST RC
WHERE RC.CUST_ID = RA.CUST_ID
AND RA.CUST_ID IN ('1037090400006','1037090400007','1037090400009')
AND RA.MONTH_ID >= '200901'
AND RA.MONTH_ID <= '200912'
ORDER BY RA.CUST_ID,RA.MONTH_ID

UNION ALL

SELECT
RA.MONTH_ID,
MAX('平均') MANAGER
,AVG(CASE WHEN RA.QTY_SOLD != 0 THEN (RA.AMT_SOLD/RA.QTY_SOLD)*250 ELSE 0 END) CORR
FROM RM_CUST_ANALYSIS RA
WHERE
RA.CUST_ID IN ('1037090400006','1037090400007','1037090400009')
AND RA.MONTH_ID >= '200901'
AND RA.MONTH_ID <= '200912'
GROUP BY RA.MONTH_ID ORDER BY RA.MONTH_ID
) A
;