INSERT INTO mtl_strmnth_grid_tmp
( guid,
rigmove_mnth_no,
rigmove_month,
AVERAGE,
actual
)
SELECT
'1234',
A.rigmove_mnth_no,
A.rigmove_month,
B.AVG as "AVERAGE",
b.actual AS "ACTUAL"
FROM
(
SELECT DISTINCT
to_char(quarter_date,'MM') AS rigmove_mnth_no,
to_char(quarter_date,'MONTH') AS rigmove_month
FROM
t_adm_calendar
WHERE
quarter_date BETWEEN TO_DATE('01/01/2018','DD/MM/YYYY') AND TO_DATE('31/01/2018','DD/MM/YYYY')
) A
LEFT OUTER JOIN (
SELECT
rigmove_mnth_no,
rigmove_month,
SUM(AVG) AS AVG,
actual
FROM
(SELECT
EXTRACT(MONTH FROM sm1.rigmove_date) rigmove_mnth_no,
to_char(sm1.rigmove_date,'MONTH') rigmove_month,
SUM(DISTINCT sm2.AVG) AS AVG,
sm1.main_activity_code_pk,
SUM(sm1.actual) AS actual
FROM
v_report_smdelivery sm1
LEFT JOIN v_report_smdelivery_budget sm2 ON sm1.main_activity_code_pk = sm2.main_activity_code_pk
WHERE
sm1.rigmove_date BETWEEN TO_DATE('01/01/2018','DD/MM/YYYY') AND TO_DATE('31/01/2018','DD/MM/YYYY')
GROUP BY
EXTRACT(MONTH FROM sm1.rigmove_date),
to_char(sm1.rigmove_date,'MONTH'),
sm1.main_activity_code_pk
ORDER BY
EXTRACT(MONTH FROM sm1.rigmove_date),
to_char(sm1.rigmove_date,'MONTH')
)
GROUP BY
rigmove_mnth_no,
rigmove_month,
actual
ORDER BY
rigmove_mnth_no,
rigmove_month
) b ON A.rigmove_mnth_no = b.rigmove_mnth_no
ORDER BY rigmove_mnth_no
;
Если я использую этот запрос в конце начала / .. он показывает ошибку ORA-00979: не выражение GROUP BY ORA-06512: в строке 3 00979. 00000 - "не выражение GROUP BY" * Причина :
* Действие:
Но если я запускаю этот запрос за пределами блока pl sql, он работает ... помогите мне решить эту проблему ...