I am trying to apply a sum function on a table column but i am getting error that
ORA-00934: group function is not allowed here
00934. 00000 - "group function is not allowed here"
*Cause:
*Action:
Error at Line: 46 Column: 5
Here is the query
select LOSA_APP.app_ref_no AS "App.Ref.No.",
CODE_BRANCH.branch_name AS "BRANCH",
CODE_STAFF.staff_name AS "Officer Name",
LOSA_CUST.full_name AS "Borrower",
LOSA_FACILITIES.fac_type AS "Facility Type",
losa_facilities.amt_appr AS "Limit"
from losa_app LOSA_APP
...
INNER JOIN
losa_facilities LOSA_FACILITIES
ON
LOSA_APP.app_ref_no = LOSA_FACILITIES.app_ref_no
where
LOSA_APP.app_status='A'
and
.....
and
sum(losa_facilities.amt_appr)
Line 46 is sum(losa_facilities.amt_appr) i also tried sum(losa_facilities.amt_appr) group by losa_facilities.amt_appr but it didn’t work.
Why it is saying that group function is not allowed here ?. What i am doing wrong ?
Thanks
EDIT:
——————————————————————————–
select LOSA_APP.app_ref_no AS "App.Ref.No.",
CODE_BRANCH.branch_name AS "BRANCH",
CODE_STAFF.staff_name AS "Officer Name",
LOSA_CUST.full_name AS "Borrower",
LOSA_FACILITIES.fac_type AS "Facility Type",
LOSA_FACILITIES.amt_appr AS "Limit"
from losa_app LOSA_APP
INNER JOIN
losa_app_z LOSA_APP_Z
ON
losa_app.app_ref_no = losa_app_z.app_ref_no
INNER JOIN
code_branch CODE_BRANCH
ON
LOSA_APP.attend_branch = CODE_BRANCH.branch_id
INNER JOIN
code_staff CODE_STAFF
ON
LOSA_APP.attend_staff = CODE_STAFF.staff_id
INNER JOIN
losa_cust LOSA_CUST
ON
LOSA_APP.app_ref_no = LOSA_CUST.app_ref_no
INNER JOIN
losa_facilities LOSA_FACILITIES
ON
LOSA_APP.app_ref_no = LOSA_FACILITIES.app_ref_no
where
LOSA_APP.app_status='A'
and
trunc(sysdate) between (nvl(LOSA_APP_Z.li_dt, LOSA_APP_Z.li_collect_dt)) AND ((trunc(sysdate))) -- falling under the reporting period
and
(trunc(sysdate) - nvl(losa_app_z.li_dt,losa_app_z.li_collect_dt)) > 90 -- select application cases at any step after entering Documentation flows.
and
losa_app.product_type = :productType -- Select records based on input parameter value passed in.
and
code_branch.branch_code1 -- Attending IHP Branch passed in from input parameter
like
case :inputChannel
when 'ABB' Then '%0232%'
when 'AiBB' Then '%0347%'
end
and
LOSA_CUST.app_joint_t = 'P' -- Name of PS No. staff name
and
GROUP BY (LOSA_APP.app_ref_no, CODE_BRANCH.branch_name, CODE_STAFF.staff_name, LOSA_CUST.full_name, LOSA_FACILITIES.fac_type)
HAVING sum(LOSA_FACILITIES.amt_appr) > 0
Error
ORA-00936: missing expression
00936. 00000 - "missing expression"
*Cause:
*Action:
Error at Line: 46 Column: 5
Line 46 is GROUP BY (LOSA_APP.app_ref_no, CODE_BRANCH.branch_name,...
I also tried this
select LOSA_APP.app_ref_no AS "App.Ref.No.",
CODE_BRANCH.branch_name AS "BRANCH",
CODE_STAFF.staff_name AS "Officer Name",
LOSA_CUST.full_name AS "Borrower",
LOSA_FACILITIES.fac_type AS "Facility Type",
sum(LOSA_FACILITIES.amt_appr) AS "Limit"
from losa_app LOSA_APP
INNER JOIN
....
Just use sum in the select clause, but in this case i get error that
ORA-00937: not a single-group group function
00937. 00000 - "not a single-group group function"
*Cause:
*Action:
To use aggregate functions (like SUM/AVERAGE etc.,) you need to group the results using the
GROUP BYclause. To filter results based on the aggregation on a column, you should perform aGROUP BYon the selected columns, and then use theHAVINGclause to specify the filter