Java.sql.SQLException: ORA-00979: not a GROUP BY expression
Hi all,
I have the following sql query;
SELECT
act.BAM_NAME AS ACTIVITY_NAME,
svc.BAM_SERVICE_NAME AS SERVICE_NAME,
opt.BAM_OP_NAME AS OPERATION_NAME,
COUNT(msg.BAM_OP_ID) AS MESSAGE_COUNT
FROM
BAM_ACTIVITY act, BAM_MESSAGE msg, BAM_OPERATION opt, BAM_SERVICE svc
WHERE
act.BAM_ID = msg.BAM_ACTIVITY_ID
AND
msg.BAM_OP_ID = opt.BAM_ID
AND
opt.BAM_SERVICE_ID = svc.BAM_ID
AND
act.BAM_ID = ?
GROUP BY msg.BAM_OP_ID ORDER BY svc.BAM_SERVICE_NAME
When i execute following expression @ sql/plus i face above error...
Does any body correct my sql query?
Thanks.
-viji
Edited by: user8977935 on Jan 22, 2010 4:38 AM
Hi,
Should not it be
SELECT
act.BAM_NAME AS ACTIVITY_NAME,
svc.BAM_SERVICE_NAME AS SERVICE_NAME,
opt.BAM_OP_NAME AS OPERATION_NAME,
COUNT(msg.BAM_OP_ID) AS MESSAGE_COUNT
FROM
BAM_ACTIVITY act, BAM_MESSAGE msg, BAM_OPERATION opt, BAM_SERVICE svc
WHERE
act.BAM_ID = msg.BAM_ACTIVITY_ID
AND
msg.BAM_OP_ID = opt.BAM_ID
AND
opt.BAM_SERVICE_ID = svc.BAM_ID
AND
act.BAM_ID = ?
GROUP BY act.BAM_NAME ,
svc.BAM_SERVICE_NAME,
opt.BAM_OP_NAME
ORDER BY svc.BAM_SERVICE_NAMERegards
Anurag
Similar Messages
-
Java.sql.SQLException: ORA-00979: not a GROUP BY expression in a query
I am getting java.sql.SQLException: ORA-00979: not a GROUP BY expression
when I run
select count(*) from ( select count(rec_no) AS REC_NO_NUM,created_by AS
CREATED_BY,to_char(created_dt,'Mon YYYY') AS CREATED_DT,to_date(to_char(created_dt,'Mon
YYYY'),'Mon YYYY') AS CREATED_DATE from tbl_ndr_renal_reg where reg_no is not null and delete_ind
= 'N' group by to_char(created_dt,'Mon YYYY'),created_by )
But when I run the subquery below it doesn't give any error and returns rows.
select count(rec_no) AS REC_NO_NUM,created_by AS CREATED_BY,to_char(created_dt,'Mon YYYY') AS
CREATED_DT, to_date(to_char(created_dt,'Mon YYYY'),'Mon YYYY') AS CREATED_DATE from
tbl_ndr_renal_reg where reg_no is not null and delete_ind = 'N' group by to_char(created_dt,'Mon
YYYY'),created_by
ThanksI tried that too still getting the same error
SQL> select count(*) from (
2 select count(rec_no) AS REC_NO_NUM,
3 created_by AS CREATED_BY,
4 to_char(created_dt,'Mon YYYY') AS CREATED_DT,
5 to_date(to_char(created_dt,'Mon YYYY'),'Mon YYYY') AS CREATED_DATE
6 from tbl_ndr_renal_reg
7 where reg_no is not null
8 and delete_ind = 'N'
9 group by to_char(created_dt,'Mon YYYY'),created_by)
10 ;
to_date(to_char(created_dt,'Mon YYYY'),'Mon YYYY') AS CREATED_DATE
ERROR at line 5:
ORA-00979: not a GROUP BY expression -
Hi Friends,
I have have extended CO where i have added dynamic where condition to VO,it's throwing error.
Code added in controller :
public class Custom_HomePageCO extends HomePageCO
public Custom_HomePageCO()
public void processRequest(OAPageContext pageContext,OAWebBean webBean)
super.processRequest(pageContext,webBean);
System.out.println("NewClase");
OAApplicationModule am=pageContext.getApplicationModule(webBean);
System.out.println(am);
OAApplicationModule am1=(OAApplicationModule)am.findApplicationModule("TrackExpenseReportsAM");
System.out.println(am1);
OAViewObject vo=(OAViewObject)am1.findViewObject("TrackExpenseReportsVO");
System.out.println(vo);
vo.setWhereClause("REPORT_SUBMITTED_DATE is not null");
vo.executeQuery();
public void processFormRequest(OAPageContext pageContext,OAWebBean webBean)
super.processFormRequest(pageContext,webBean);
Error message:
Exception Details.
Error Details
Logout
Error Page
Exception Details.
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: SELECT * FROM (SELECT
AI.DESCRIPTION PURPOSE,
AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
AI.INVOICE_DATE REPORT_DATE,
AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
AI.INVOICE_NUM REPORT_NUMBER,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30))
REPORT_TOTAL,
P.PERSON_ID EMPLOYEE_ID,
AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
P.FULL_NAME FULL_NAME ,
DECODE(AI.CANCELLED_DATE,null,
nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
decode(AI.Payment_status_flag,'Y','PAID',
'N','INVOICED',
'P','PARPAID',NULL))),
'CANCELLED') STATUS_CODE,
AERH.source SOURCE,
NULL CURRENT_APPROVER,
ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
AERH.HOLDING_REPORT_HEADER_ID,
AI.VENDOR_ID VENDOR_ID,
AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
AI.INVOICE_ID INVOICE_ID
FROM
AK_WEB_USER_SEC_ATTR_VALUES A,
PO_VENDORS PV,
AP_INVOICES AI,
AP_EXPENSE_REPORT_HEADERS AERH,
PER_PEOPLE_X P,
AP_PAYMENT_SCHEDULES APS
WHERE AI.INVOICE_ID= APS.INVOICE_ID
AND AI.INVOICE_ID = AERH.VOUCHNO(+)
AND AI.INVOICE_TYPE_LOOKUP_CODE||'' = 'EXPENSE REPORT'
AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
AND PV.EMPLOYEE_ID = A.NUMBER_VALUE
AND A.WEB_USER_ID = :1
AND P.PERSON_ID = PV.EMPLOYEE_ID
AND PV.VENDOR_ID = AI.VENDOR_ID
AND DECODE (AI.PAYMENT_STATUS_FLAG,
'Y', sysdate - AI.LAST_UPDATE_DATE,
decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
) <= 30
AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)
UNION
SELECT
AI.DESCRIPTION PURPOSE,
AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
AI.INVOICE_DATE REPORT_DATE,
AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
AI.INVOICE_NUM REPORT_NUMBER,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)),
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30))
REPORT_TOTAL,
P.PERSON_ID EMPLOYEE_ID,
AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
P.FULL_NAME FULL_NAME ,
DECODE(AI.CANCELLED_DATE,null,
nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
decode(AI.Payment_status_flag,'Y','PAID',
'N','INVOICED',
'P','PARPAID',NULL))),
'CANCELLED') STATUS_CODE,
AERH.source SOURCE,
NULL CURRENT_APPROVER,
ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
AERH.HOLDING_REPORT_HEADER_ID,
AI.VENDOR_ID VENDOR_ID,
AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
AI.INVOICE_ID INVOICE_ID
FROM
AK_WEB_USER_SEC_ATTR_VALUES A,
PO_VENDORS PV,
AP_INVOICES AI,
AP_EXPENSE_REPORT_HEADERS AERH,
PER_PEOPLE_X P,
AP_PAYMENT_SCHEDULES APS
WHERE AI.INVOICE_ID= APS.INVOICE_ID
AND AI.INVOICE_ID = AERH.VOUCHNO(+)
AND AI.INVOICE_TYPE_LOOKUP_CODE||'' in ('STANDARD','MIXED')
AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
AND AI.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
AND A.WEB_USER_ID = :2
AND P.PERSON_ID = AI.PAID_ON_BEHALF_EMPLOYEE_ID
AND PV.VENDOR_ID = AI.VENDOR_ID
AND DECODE (AI.PAYMENT_STATUS_FLAG,
'Y', sysdate - AI.LAST_UPDATE_DATE,
decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
) <= 30
AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)
UNION ALL
SELECT
AERH.DESCRIPTION PURPOSE,
AERH.DEFAULT_CURRENCY_CODE CURRENCY_CODE,
AERH.WEEK_END_DATE REPORT_DATE,
AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
AERH.INVOICE_NUM REPORT_NUMBER,
TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AERH.DEFAULT_CURRENCY_CODE,30)) ||' '|| AERH.DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AERH.DEFAULT_CURRENCY_CODE,30)) REPORT_TOTAL,
PER_EMPLOYEE.PERSON_ID EMPLOYEE_ID,
AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
PER_EMPLOYEE.FULL_NAME FULL_NAME,
NVL(AERH.expense_status_code,
AP_WEB_OA_ACTIVE_PKG.GetReportStatusCode(AERH.Source, AERH.Workflow_approved_flag,
AERH.report_header_id, 'Y', 'N')) STATUS_CODE,
AERH.source SOURCE,
NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG.GetCurrentApprover(AERH.Source,
AERH.Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER,
ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,
sysdate - AERH.LAST_UPDATE_DATE)) DAYS_SINCE_ACTIVITY,
AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
AERH.HOLDING_REPORT_HEADER_ID,
0 VENDOR_ID,
AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
DECODE(AERH.expense_current_approver_id,
-99999, 'AMEMultipleApprovers',
decode(PER_APPROVER.full_name,
null,'CurrentApproverName','AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
-1 INVOICE_ID
FROM
AK_WEB_USER_SEC_ATTR_VALUES A,
AP_EXPENSE_REPORT_HEADERS AERH,
PER_PEOPLE_X PER_EMPLOYEE,
PER_PEOPLE_X PER_APPROVER
WHERE AERH.VOUCHNO +0 =0
AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
AND AERH.EMPLOYEE_ID = A.NUMBER_VALUE
AND A.WEB_USER_ID = :3
AND PER_EMPLOYEE.PERSON_ID = AERH.EMPLOYEE_ID
AND (AERH.Source <> 'NonValidatedWebExpense'
OR AERH.Workflow_approved_flag IS NULL)
AND AERH.expense_current_approver_id = PER_APPROVER.person_id
AND decode(AERH.total,0,ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,sysdate - AERH.LAST_UPDATE_DATE)),30) <= 30
AND AERH.SOURCE <> 'Both Pay'
UNION
SELECT
AERH.DESCRIPTION PURPOSE,
AERH.DEFAULT_CURRENCY_CODE CURRENCY_CODE,
AERH.WEEK_END_DATE REPORT_DATE,
AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
AERH.INVOICE_NUM REPORT_NUMBER,
TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AERH.DEFAULT_CURRENCY_CODE,30)) ||' '|| AERH.DEFAULT_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
TO_CHAR(nvl(AERH.AMT_DUE_CCARD_COMPANY+AERH.AMT_DUE_EMPLOYEE+nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),AERH.TOTAL),FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AERH.DEFAULT_CURRENCY_CODE,30)) REPORT_TOTAL,
PER_EMPLOYEE.PERSON_ID EMPLOYEE_ID,
AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
PER_EMPLOYEE.FULL_NAME FULL_NAME,
NVL(AERH.expense_status_code,
AP_WEB_OA_ACTIVE_PKG.GetReportStatusCode(AERH.Source, AERH.Workflow_approved_flag,
AERH.report_header_id,'Y','N')) STATUS_CODE,
AERH.source SOURCE,
NVL (PER_APPROVER.full_name, AP_WEB_OA_ACTIVE_PKG.GetCurrentApprover(AERH.Source,
AERH.Workflow_approved_flag, AERH.report_header_id, AERH.expense_status_code)) CURRENT_APPROVER,
ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,
sysdate - AERH.LAST_UPDATE_DATE)) DAYS_SINCE_ACTIVITY,
AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
AERH.HOLDING_REPORT_HEADER_ID,
0 VENDOR_ID,
AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
DECODE(AERH.expense_current_approver_id,
-99999, 'AMEMultipleApprovers',
decode(PER_APPROVER.full_name,
null,'CurrentApproverName','AMESingleApprover')) CURRENT_APPROVER_SWITCHER,
to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
-1 INVOICE_ID
FROM
AK_WEB_USER_SEC_ATTR_VALUES A,
AP_EXPENSE_REPORT_HEADERS AERH,
PER_PEOPLE_X PER_EMPLOYEE,
PER_PEOPLE_X PER_APPROVER
WHERE AERH.VOUCHNO +0=0
AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
AND AERH.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
AND A.WEB_USER_ID = :4
AND PER_EMPLOYEE.PERSON_ID = PAID_ON_BEHALF_EMPLOYEE_ID
AND AERH.EMPLOYEE_ID IS NULL
AND (AERH.Source <> 'NonValidatedWebExpense'
OR AERH.Workflow_approved_flag IS NULL)
AND AERH.expense_current_approver_id = PER_APPROVER.person_id
AND decode(AERH.total,0,ROUND(NVL(sysdate - AERH.EXPENSE_LAST_STATUS_DATE,sysdate - AERH.LAST_UPDATE_DATE)),30) <= 30
AND AERH.SOURCE <> 'Both Pay'
UNION ALL
/* This select is for invoice imported reports by contingent workers */
SELECT
AI.DESCRIPTION PURPOSE,
AI.INVOICE_CURRENCY_CODE CURRENCY_CODE,
AI.INVOICE_DATE REPORT_DATE,
AERH.REPORT_SUBMITTED_DATE REPORT_SUBMITTED_DATE,
AI.INVOICE_NUM REPORT_NUMBER,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30)) ||' '|| AI.INVOICE_CURRENCY_CODE REPORT_TOTAL_CURRENCY,
TO_CHAR(decode(nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0),
0, decode(AI.CANCELLED_DATE,
null, APS.GROSS_AMOUNT,
AERH.TOTAL),
nvl(AI.AMT_DUE_CCARD_COMPANY, AERH.AMT_DUE_CCARD_COMPANY) + nvl(AI.AMT_DUE_EMPLOYEE, AERH.AMT_DUE_EMPLOYEE) + nvl(AERH.MAXIMUM_AMOUNT_TO_APPLY,0)) ,
FND_CURRENCY_CACHE.GET_FORMAT_MASK
(AI.INVOICE_CURRENCY_CODE, 30))
REPORT_TOTAL,
P.PERSON_ID EMPLOYEE_ID,
AERH.REPORT_HEADER_ID REPORT_HEADER_ID,
P.FULL_NAME FULL_NAME ,
DECODE(AI.CANCELLED_DATE,null,
nvl(aerh.expense_status_code, DECODE(APS.GROSS_AMOUNT ,0,'PAID',
decode(AI.Payment_status_flag,'Y','PAID',
'N','INVOICED',
'P','PARPAID',NULL))),
'CANCELLED') STATUS_CODE,
AERH.source SOURCE,
NULL CURRENT_APPROVER,
ROUND(sysdate - AI.LAST_UPDATE_DATE) DAYS_SINCE_ACTIVITY,
AERH.RECEIPTS_STATUS RECEIPTS_STATUS_CODE,
AERH.HOLDING_REPORT_HEADER_ID,
AI.VENDOR_ID VENDOR_ID,
AERH.AMT_DUE_CCARD_COMPANY AMT_DUE_CCARD_COMPANY,
AERH.AMT_DUE_EMPLOYEE AMT_DUE_EMPLOYEE,
'CurrentApproverName' CURRENT_APPROVER_SWITCHER,
to_char(AERH.LAST_UPDATE_DATE, 'DD-MON-RRRR HH:MI:SS'),
AI.INVOICE_ID INVOICE_ID
FROM
AK_WEB_USER_SEC_ATTR_VALUES A,
AP_INVOICES AI,
AP_EXPENSE_REPORT_HEADERS AERH,
PER_PEOPLE_X P,
AP_PAYMENT_SCHEDULES APS
WHERE AI.INVOICE_ID= APS.INVOICE_ID
AND AI.INVOICE_ID = AERH.VOUCHNO(+)
AND AI.INVOICE_TYPE_LOOKUP_CODE||'' = 'EXPENSE REPORT'
AND A.ATTRIBUTE_CODE = 'ICX_HR_PERSON_ID'
AND AI.PAID_ON_BEHALF_EMPLOYEE_ID = A.NUMBER_VALUE
AND A.WEB_USER_ID = :5
AND P.PERSON_ID = AI.PAID_ON_BEHALF_EMPLOYEE_ID
AND AP_WEB_DB_HR_INT_PKG.IsPersonCwk(AI.PAID_ON_BEHALF_EMPLOYEE_ID)='Y'
AND DECODE (AI.PAYMENT_STATUS_FLAG,
'Y', sysdate - AI.LAST_UPDATE_DATE,
decode(APS.GROSS_AMOUNT , 0 ,sysdate - AI.LAST_UPDATE_DATE,0)
) <= 30
AND (AERH.SOURCE <> 'Both Pay' OR AERH.REPORT_HEADER_ID IS NULL)) QRSLT WHERE (REPORT_SUBMITTED_DATE is not null)
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:603)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
at _OA._jspService(OA.jsp:33)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)
## Detail 0 ##
java.sql.SQLException: ORA-01008: not all variables bound
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
at _OA._jspService(OA.jsp:33)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)
java.sql.SQLException: ORA-01008: not all variables bound
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:583)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1986)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1144)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2548)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2933)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:650)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:578)
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4525)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
at oracle.jbo.server.ViewObjectImpl.executeQuery(ViewObjectImpl.java:3326)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQuery(OAViewObjectImpl.java:441)
at oracle.apps.ap.oie.webui.Custom_HomePageCO.processRequest(Custom_HomePageCO.java:26)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
at _OA._jspService(OA.jsp:33)
at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
at java.lang.Thread.run(Thread.java:534)
I have took the sql from error message and i tried executing the same in toad... i was able execute it smoothly... i dot know why its working while running the page
Please help me guys...
Thanks,
PavanHi Shobhi,
Actually this relates to the Iexpenese Module. The VO is "oracle.apps.ap.oie.server.TrackExpenseReportsVO"(Seeded)
The user Expense home screen is based on the above VO and this view returning multiple line for the same expense number which should be eliminated.
so for this i need to filter data by adding where clause dynamically on top of the existing where conditions so that i can eliminate the duplicate row.
Please suggest me !! how to move on
Thanks,
Pavan V
91-9640871542 -
Hi,
We developed OA page for Employee's Payslip and it is working fine for all the employees but it is not working for only one employee...Getting the error as
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement
preparation
## Detail 0 ##
java.sql.SQLException: ORA-01843: not a valid month
Real Scenario is:
The user "DANISH.LOTFY" is login into application and when he click on Payslip to the month then he is always getting the above error.
For testing purpose we have removed his employee assignment from user screen(fnd_user) and assigned some other employee name (say MOHAMED.ELBAHY)... After this when DANISH.LOTFY logins into the application and payslip page is working fine...(He can able to see MOHAMED.ELBAHY payslip.....
Realy we don't know this strange behaviour of OA ...
------ Code with Error details------------------
Statement:
SELECT * FROM (SELECT DISTINCT ppa.DATE_EARNED, TO_CHAR(ppa.DATE_EARNED,'MON-YYYY') DISPLAY
, TO_CHAR(ppa.DATE_EARNED,'MM YYYY') PARAM
FROM
pay_payroll_actions ppa
,pay_assignment_actions pac
,PER_ALL_ASSIGNMENTS_F PASS
,FND_USER FU
,per_time_periods PTP
WHERE ppa.payroll_id = 61
AND ppa.payroll_action_id = pac.payroll_action_id
AND PAC.ASSIGNMENT_ID = PASS.ASSIGNMENT_ID
AND PASS.PERSON_ID = FU.EMPLOYEE_ID
AND FU.USER_ID =Fnd_Profile.VALUE('USER_ID')
AND TRIM(TO_CHAR(ppa.DATE_EARNED,'MON-YYYY')) IS NOT NULL
---Added by Sudipta C on 28th Janaury 2008
AND TRIM(TO_CHAR(ppa.DATE_EARNED,'MON-YYYY')) <> TRIM(TO_CHAR(SYSDATE,'MON-YYYY'))
AND ppa.DATE_EARNED=(SELECT MAX(DATE_EARNED) FROM pay_payroll_actions WHERE time_period_id=ppa.time_period_id)
AND ppa.DATE_EARNED >='30-NOV-2007'
UNION ALL
--Query to Display only the Current Month if the Concurrent Request Ran
SELECT DISTINCT ppa.DATE_EARNED, TO_CHAR(ppa.DATE_EARNED,'MON-YYYY') DISPLAY
, TO_CHAR(ppa.DATE_EARNED,'MM YYYY') PARAM
FROM
pay_payroll_actions ppa
,pay_assignment_actions pac
,PER_ALL_ASSIGNMENTS_F PASS
,FND_USER FU
,per_time_periods PTP
WHERE ppa.payroll_id = 61
AND ppa.payroll_action_id = pac.payroll_action_id
AND PAC.ASSIGNMENT_ID = PASS.ASSIGNMENT_ID
AND PASS.PERSON_ID = FU.EMPLOYEE_ID
AND FU.USER_ID = Fnd_Profile.VALUE('USER_ID')
AND TRIM(TO_CHAR(ppa.DATE_EARNED,'MON-YYYY')) IS NOT NULL
AND TRIM(TO_CHAR(ppa.DATE_EARNED,'MON-YYYY')) = TRIM(TO_CHAR(SYSDATE,'MON-YYYY'))
AND ppa.DATE_EARNED=(SELECT MAX(DATE_EARNED) FROM pay_payroll_actions WHERE time_period_id=ppa.time_period_id)
AND ppa.DATE_EARNED >='30-NOV-2007'
--Check the Concurrent Program Ran or not to Display the SYS Month Payroll Period ID
AND EXISTS
(SELECT TRIM(TO_CHAR(REQUEST_DATE,'MON-YYYY')) FROM fnd_conc_req_summary_v fcrs
WHERE program_short_name = 'PROC_EXP1_TESTING'
AND PHASE_CODE='C' AND STATUS_CODE='C'
AND TO_CHAR(REQUEST_DATE,'MON-YYYY')=TO_CHAR(SYSDATE,'MON-YYYY')
AND REQUEST_DATE=(SELECT MAX(REQUEST_DATE) FROM fnd_conc_req_summary_v
WHERE CONCURRENT_PROGRAM_ID=fcrs.CONCURRENT_PROGRAM_ID))
ORDER BY 1 DESC) QRSLT WHERE (( UPPER(DISPLAY) like :1 AND (DISPLAY like :2 OR DISPLAY like :3 OR DISPLAY like :4 OR DISPLAY like :5)))
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145)
at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1408)
at oracle.apps.fnd.framework.webui.OAPageBean.processFormData(OAPageBean.java:2555)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1677)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:509)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:430)
at oa_html._OA._jspService(_OA.java:84)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:534)
## Detail 0 ##
java.sql.SQLException: ORA-01843: not a valid month
Could any please suggest/provide your valuable inputs to resolve this issue(It is in production , so please treat it as very urgent).
Thanks & Regards,
J.PrakashHi,
This is really a strange behaviour as you are saying that it is happening only for one user so please check his user preferences.
Regards,
Reetesh Sharma -
ERROR java.sql.SQLException: ORA-01843: not a valid month
This page is working fine for English Language. Once we change preference Lanuage to "French Candian" We are getting this issue.
This is little urgent on this.
ERROR
oracle.apps.fnd.framework.OAException: oracle.jbo.SQLStmtException: JBO-27122: SQL error during statement preparation. Statement: select
ppf.person_id,
ppf.employee_number,
god.organization_id,
ppf.full_name employee_name,
(select full_name from per_people_x where person_id = paf.supervisor_ID ) manager_name,
(select full_name from per_people_x where person_id = haou.attribute4 ) hr_name,
--hr_general.decode_person_name(haou.attribute4 ) hr_name,
haou.name organization_name,
GEM.termination_date actual_termination_date,
(select meaning from hr_lookups where lookup_type = 'LEAV_REAS' and lookup_code = GEM.Leaving_reason and enabled_flag = 'Y') leaving_reason,
god.sub_business sub_business,
god.business_segment business_segment,
god.industry_focus_group industry_focus_group,
pgd.segment2 corporate_Band,
tl.territory_short_name country
from per_people_f ppf,
per_assignments_f paf,
hr_all_organization_units haou,
per_grades pg,
per_grade_definitions pgd,
per_addresses pa,
fnd_territories_tl tl,
XXsm_org_dtl god,
XX_EXIT_TRANSACTION GET,
XX_EXIT_MANAGER GEM
where 1=1
and paf.person_id=:1
and paf.primary_flag='Y'
and ppf.person_id = paf.person_id
and paf.organization_id=haou.organization_id
and paf.organization_id = god.organization_id
and trunc(sysdate) between trunc(paf.effective_start_date) and trunc(paf.effective_end_date)
and trunc(sysdate) between trunc(ppf.effective_start_date) and trunc(ppf.effective_end_date)
and ppf.person_id=GET.employee_id(+)
and GET.Transaction_id = GEM.transaction_id
and paf.grade_id=pg.grade_id(+)
and pg.grade_definition_id=pgd.grade_definition_id(+)
and ppf.person_id=pa.person_id(+)
and pa.primary_flag(+)='Y'
and pa.country=tl.territory_code(+)
AND tl.language = USERENV('LANG')
AND trunc(sysdate) between trunc(pa.Date_from) and trunc(nvl(pa.Date_to, TO_DATE ('31-DEC-4712', 'DD-MON-YYYY')))
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:891)
at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:865)
at oracle.apps.fnd.framework.OAException.wrapperInvocationTargetException(OAException.java:988)
at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:211)
at oracle.apps.fnd.framework.server.OAUtility.invokeMethod(OAUtility.java:153)
at oracle.apps.fnd.framework.server.OAApplicationModuleImpl.invokeMethod(OAApplicationModuleImpl.java:750)
at ge.oracle.apps.per.selfservice.eexit.employee.webui.GEExitEmployeeCO.processRequest(GEExitEmployeeCO.java:112)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2348)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1747)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
at oa_html._OA._jspService(_OA.java:84)
at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
at oracle.jsp.JspServlet.service(JspServlet.java:156)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
at org.apache.jserv.JServConnection.run(JServConnection.java:294)
at java.lang.Thread.run(Thread.java:619)
## Detail 0 ##
java.sql.SQLException: ORA-01843: not a valid month
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:590)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1973)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1119)
at oracle.jdbc.driver.OracleStatement.doExecuteQuery(OracleStatement.java:2566)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:2963)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:658)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:584)
at oracle.jbo.server.QueryCollection.buildResultSet(QueryCollection.java:631)
at oracle.jbo.server.QueryCollection.executeQuery(QueryCollection.java:518)
at oracle.jbo.server.ViewObjectImpl.executeQueryForCollection(ViewObjectImpl.java:3375)
at oracle.jbo.server.OAJboViewObjectImpl.executeQueryForCollection(OAJboViewObjectImpl.java:828)
at oracle.apps.fnd.framework.server.OAViewObjectImpl.executeQueryForCollection(OAViewObjectImpl.java:4507)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:574)
at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:544)
at oracle.jbo.server.ViewRowSetImpl.executeDetailQuery(ViewRowSetImpl.java:619)
at oracle.jbo.server.ViewObjectImpl.executeDetailQuery(ViewObjectImpl.java:3339)
at oracle.jbo.server.ViewObjectImplAre you hard coding anything in code or VO ?
AND trunc(sysdate) between trunc(pa.Date_from) and trunc(nvl(pa.Date_to, TO_DATE ('31-DEC-4712', 'DD-MON-YYYY')))Try some modification in the above nvl code and test.
And refer:
http://apps2fusion.com/apps/apps/430-string-to-date
-Anand -
Sql - ORA-00979: not a GROUP BY expression
Hi Expert,
I got error message :ORA-00979: not a GROUP BY expression from below sql statement
Please advise - display total number of item sold and the total dollars of all items. Only show results where the total qty is greater than 2.
SELECT i.Itemcode, i.Description, o.Qty, sum(o.Qty*o.salesprice) AS TOTALDOLLARS
FROM ORDERLINE o
INNER JOIN ITEM i
ON o.itemcode = i.itemcode
GROUP BY i.Itemcode
Having o.qty >2
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Create table ORDERLINE
Qty Number(4),
Salesprice Number(6,2),
OrderNo Number(3),
Itemcode Varchar2(6),
Primary Key (OrderNo,Itemcode),
Foreign Key (Itemcode) References ITEM,
Foreign Key (OrderNo) References SALESORDER
Create Table ITEM
Itemcode Varchar2(6),
Description Varchar2(50),
Retailprice Number(6,2),
Weight Number (4,1),
Purchaseprice Number(6,2),
Category Varchar2(20),
Primary Key (Itemcode)
);Hi Frank,
My apologize and learnt from my mistake of posting problem on this.
I need to run a result set to display total number of item sold and the total dollars of all items. Only show results where the total qty is greater than 2.
When I tried the below sql and got this error message : ORA-00979: not a GROUP BY expression
SELECT i.Itemcode, i.Description, o.Qty, sum(o.Qty*o.saleprice) AS TOTALDOLLARS
FROM ORDERLINE o
INNER JOIN ITEM i
ON o.itemcode = i.itemcode
GROUP BY i.Itemcode, i.Description
Having sum(o.qty) >2
the result set should be :
Itemcode Description Total Qty Total Dollar
A10 Hammock 11 935
A13 Table Tennis Bat 4 100
A27 8 cm Candle 128 587
A30 Set of 4 outdoor glasses 4 38
Create Table ITEM
Itemcode Varchar2(6),
Description Varchar2(50),
Retailprice Number(6,2),
Weight Number (4,1),
Purchaseprice Number(6,2),
Category Varchar2(20),
Primary Key (Itemcode)
--Insert statements to populate the ITEM Table
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A10', 'Hammock', 85, 12, 40,'Outdoor');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A11', 'Glitz BBQ', 999, 55, 350,'Luxury');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A13', 'Table Tennis Bat', 29, 0.2, 9.5,'Sport');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A15', 'Basketball Ring', 150, 25, 45,'Sport');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A16', 'Wiggles Basketball', 25, 1.4, 9.2,'Sport');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A18', 'Tiger Autographed Putter', 499, 2.1, 250,'Outdoor');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A22', '12 Tiger Golf Balls', 35.95, 1.5, 20,'Sport');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A27', '8 cm Candle', 5, 0.5, 0.58,'Outdoor');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A30', 'Set of 4 outdoor glasses', 10, 1, 2.65,'Outdoor');
INSERT INTO ITEM
(Itemcode, Description, Retailprice, Weight, Purchaseprice, Category)
VALUES ('A35', '16 cm Candle', 25, 1, 1.5,'Outdoor');
--Insert statements to populate the ORDERLINE Table
Create table ORDERLINE
Qty Number(4),
Saleprice Number(6,2),
OrderNo Number(3),
Itemcode Varchar2(6),
Primary Key (OrderNo,Itemcode),
Foreign Key (Itemcode) References ITEM,
Foreign Key (OrderNo) References SALESORDER
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (501, 1, 85, 'A10');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (501, 4, 25, 'A13');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (501, 6, 5, 'A27');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (502, 1, 999, 'A11');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (503, 10, 85, 'A10');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (503, 100, 4.5, 'A27');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (504, 2, 85, 'A15');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (504, 12, 5, 'A27');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (505, 1, 900, 'A11');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (505, 1, 450, 'A18');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (506, 10, 4.7, 'A27');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (506, 4, 9.5, 'A30');
INSERT INTO ORDERLINE
(OrderNo, Qty, SalePrice, Itemcode)
VALUES (506, 2, 35, 'A22');
Many thanks
Mandy -
Ora-00979 not a group by expression
hi , how r u ?
my problem in group by , how include subquery in group by ,
this query give me error ora-00979 not a group by expression ,
please help me in this query :
select EVV_CompScale.Code CompCode,ScaleCode ,NameEn,NameAr,RatingChar ,count(EV_CompetencyEmployee.Code) as VoteCount ,
coalesce((select count(EV_CompetencyEmployee.code) from EV_CompetencyEmployee join EV_EmployeeEvaluation tblEV on EV_Code=tblEV.Code and EmployeeApprovalCMP=1 and DirectManagerApprovalCMP=1 and SeniorManagerApprovalCMP=1 and tblEV.configCode='K' where CompetencyCode=EVV_CompScale.Code and not RatingID is null ),1) as Total
from EVV_CompScale left join (EV_CompetencyEmployee join EV_EmployeeEvaluation on EV_Code=EV_EmployeeEvaluation.Code and EmployeeApprovalCMP=1 and DirectManagerApprovalCMP=1 and SeniorManagerApprovalCMP=1 and EV_EmployeeEvaluation.configCode='K') on EV_CompetencyEmployee.CompetencyCode=EVV_CompScale.Code and RatingID=ScaleCode where CompConfig='K'
and ScaleConfig='K' group by EVV_CompScale.Code,ScaleCode,RatingChar,NameEn,NameAr
order by CompCode .
thanks .Hi,
In a GROUP BY querry, every item in the SELECT list must be one of the following
(1) One of the GROUP BY expressions
(2) An aggregate function
(3) A constant
(4) Deterministic expressions based on the above (for example, COALESCE, where all the arguments are taken from the list above)
So if your scalar sub-query is going to be part of the GROUP BY query, it has to fit into one of those categories
I don't see any good way of convincing the compiler that your scalar sub-query is a constant, even if it happens to rturn a constant value, but you can make it either
(1) one of the GROUP BY expressions (compute it in a sub-query, to avoid repeating the whole scalar sub-query in the GROUP BY clause), or
(2) an aggregate function ( e.g. MAX ((SELECT ...))).
But the scalar sub-query doesn't have to be part of the GROUP BY query. Depending on your tables and the desired results, it might be easy to do the GROUP BY and what is now the scalar sub-query separately, and then join the two result sets.
If you need help, it always helps to post:
(1) The version of Oracle (and any other relevant software) you're using
(2) A little sample data (just enough to show what the problem is) from all the relevant tables
(3) The results you want from that data
(4) Your best attempt so far (formatted) (You posted this, but since it's unformated, it's very hard to read.)
(5) The full error message (if any), including line number
Executable SQL statements (like "CREATE TABLE AS ..." or "INSERT ..." statements) are best for (2).
Formatted tabular output is okay for (3). Type these 6 characters:
{code}
(small letters only, inside curly brackets) before and after formatted text, to preserve spacing.
Simplify the problem if you can. For example, if your real query involves many columns and many join conditions, try to post a similar problem that has few columns and very siomple join conditions, but has the same problem as your real query. -
Getting "ORA-00979: not a GROUP BY expression" error in Inline query
Hello all,
The following query when run in SCOTT user gives "ORA-00979: not a GROUP BY expression" error.
If I remove the TRUNC function from the outer query's group by clause, then it fetches
(My actual query is something similar to the following query. I have given emp, dept tables for convenience's sake)
select e.empno,e.ename, AVG(e.SAL), trunc(e.hiredate),
(select sum(sal) from emp
where hiredate = e.hiredate) salary
from emp e
group by e.DEPTNO,e.EMPNO,e.ENAME, trunc(e.hiredate)
Pls suggest how this error can be avoided.
Regards,
SamWhy not this?
satyaki>
satyaki>select * from v$version;
BANNER
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for Linux: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production
Elapsed: 00:00:00.02
satyaki>
satyaki>
satyaki>select e.empno,
2 e.ename,
3 AVG(e.SAL),
4 trunc(e.hiredate),
5 (
6 select sum(sal)
7 from emp
8 where hiredate = e.hiredate
9 ) salary
10 from emp e
11 group by e.DEPTNO,
12 e.EMPNO,
13 e.ENAME,
14 e.hiredate;
EMPNO ENAME AVG(E.SAL) TRUNC(E.H SALARY
7934 MILLER 1887.6 23-JAN-82 5583.6
7698 Glen 1848 23-JAN-82 5583.6
7788 SCOTT 598.95 19-APR-87 598.95
7900 JAMES 1379.4 03-DEC-81 6650.16
7521 WARD 226.88 22-FEB-81 226.88
7599 BILLY 4500 10-JUN-09 4500
2222 sp 1200 14-SEP-09 1200
7902 FORD 5270.76 03-DEC-81 6650.16
7566 Smith 1848 23-JAN-82 5583.6
7654 MARTIN 1815 28-SEP-81 1815
7839 KING 7260 17-NOV-81 7260
EMPNO ENAME AVG(E.SAL) TRUNC(E.H SALARY
7844 TURNER 2178 08-SEP-81 2178
7876 ADAMS 159.72 23-MAY-87 159.72
13 rows selected.
Elapsed: 00:00:00.03
satyaki>Regards.
Satyaki De. -
Impact of solution of ORA-00979: not a GROUP BY expression in Oracle11g R2
Hi,
We have a query which is working in 10g and giving error "ORA-00979: not a GROUP BY expression" in Oracle11g R2 (11.2.0.3). we have found following two solution to resolve it from the internet.
1)You can Set the hidden parameter “_FIX_CONTROL”=’5520732:OFF’ in the pfile. This parameter disables a given bug number.
2)We can set the parameter optimizer_features_enable to a previous version of Oracle, ’11.1.0.7′
but I am unable to find the side effects of above change, so I need to know:
1)whcih is batter solution
2)what are the possible side effects of both solution.Hi,
1: The fix for the fix of bug 5520732 is already solved in 11.2, so this won't help
2: This can cause performance, suboptimal plans and losing lot of features from 11.2
The third option is always the best in this case, rewrite the query. There is an error in the SQL, so fix that one. It is just one query, so it wouldn't be to hard. The group by items are possibly out of sync with the select items.
Herald ten Dam
http://htendam.wordpress.com -
ORA-00979: not a GROUP BY expression on different oracle version
Hi,
I tried below sql on different database and I'm having a strange result.
error is ORA-00979: not a GROUP BY expression
SELECT COUNT(*) OVER() CNT,
COUNT(member_id) AS cnt2,
etoc_type,
journal_id,
volume_id,
issue_id,
current_registered_users,
date_sent,
date_order,
(COUNT(member_id) -
(Select Count( *)
FROM oracjoc.email_alert_bounce_backs bb
WHERE aa.journal_id = bb.journal_id
AND aa.volume_id = bb.volume_id
AND aa.issue_id = bb.issue_id
AND aa.etoc_type = bb.etoc_type
AND aa.date_sent = TO_CHAR(bb.date_sent, 'ddMonYYYY')
)) delivered
FROM
(SELECT member_id,
etoc_type,
journal_id,
volume_id,
issue_id,
current_registered_users,
TO_CHAR(date_sent, 'ddMonyyyy') date_sent,
To_Number(To_Char(Date_Sent, 'yyyymmdd')) Date_Order
FROM oracjoc.Report_Issue_Alert
WHERE Etoc_Type = '1'
) Aa
GROUP BY Journal_Id,
Volume_Id,
Issue_Id,
Etoc_Type,
Current_Registered_Users,
Date_Order,
Date_Sent
ORDER BY date_order DESC
Oracle version:
Oracle Database 11g Release 11.1.0.7.0 - 64bit Production: I got failed result on this one
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production: sql was successfully executed.
Can someone explain is this still a part of bug on non enterprise edition?, TIA!919272 wrote:
Hi,
I tried below sql on different database and I'm having a strange result.
error is ORA-00979: not a GROUP BY expressionRead the full error message. It has also a row and a column number specified. Use this number to find out which column gives you the trouble.
I see that there are several not needed date to char conversions. I could imaging that they confuse the query merge mechanism. Other than that: try to strip down the query to the smallest posisble set of colum combination. So that you can see where the error comes from.
SELECT COUNT(*) OVER() CNT,
COUNT(*) AS cnt2,
etoc_type,
journal_id,
volume_id,
issue_id,
current_registered_users,
date_sent2,
(COUNT(*) -
(Select Count( *)
FROM oracjoc.email_alert_bounce_backs bb
WHERE aa.journal_id = bb.journal_id
AND aa.volume_id = bb.volume_id
AND aa.issue_id = bb.issue_id
AND aa.etoc_type = bb.etoc_type
AND aa.date_sent2 = trunc(bb.date_sent)
)) delivered
FROM (SELECT member_id, etoc_type, journal_id, volume_id, issue_id, current_registered_users,
trunc(date_sent) date_sent2,
FROM oracjoc.Report_Issue_Alert
WHERE Etoc_Type = '1'
) Aa
GROUP BY Journal_Id, Volume_Id, Issue_Id, Etoc_Type, Current_Registered_Users, Date_Sent2
ORDER BY Date_Sent2 DESC -
Upgrade database ORA-00979: not a GROUP BY expression in Oracle11g R2
hi,
I am working in Oracle 10g (10.2.0.4) Environement. I want to update Our production database from Oracle 10g to Oracle11g R2(11.2.0.3).
note: OS CentOS X86-64
We follow the migration through import & Export Commands from Production database to New Database.
One Of user having views, while executing that view in 11g R2 Environment it gives the following error.
ORA-00979: not a GROUP BY expression.
When i run this same Query in Oracle10g Environment is executed Successfully without errors or warnings.Please be aware that CentOS is not a supported distro for Oracle installs.
For your error, pl see
SQL used to work in 10G Throws ORA-00979 Not A Group By Expression after upgrading to 11G [ID 813946.1]
ORA-979 bugs on 11.2.0.1 [ID 1085766.1]
ORA-00979 AFTER UPGRADE TO 11G [ID 814423.1]
HTH
Srini -
ORA-00979: not a GROUP BY expression in Oracle11g R2
hi,
I am working in Oracle 9i Environement. I want to update Our production database from Oracle 9i to Oracle11g R2.
Note :- Oracle 9i & 11g R2 are different systems.
We follow the migration through import & Export Commands from Production database to New Database.
One Of user having views, while executing that view in 11g R2 Environment it gives the following error.
ORA-00979: not a GROUP BY expression.
When i run this same Query in Oracle9i Environment is executed Successfully with out errors or warnings.
This type of problem not occurred in all views.
In Problematic view having Decode function with in that another decode method was used & finally group by clause is used.
Please guide to me if any issues in 11g R2 Environment.
Thanx in advance
Vijay Kumar
Edited by: user1672302 on Apr 4, 2012 5:32 PMPl see these MOS Docs
ORA-00979 AFTER UPGRADE TO 11G [ID 814423.1]
SQL used to work in 10G Throws ORA-00979 Not A Group By Expression after upgrading to 11G [ID 813946.1]
HTH
Srini -
GROUP BY with parameter - cause error -ORA-00979: not a GROUP BY expression
I generate a query via PreparedStatement. For example:
SELECT when, value FROM test GROUP BY ?;
PrepState.toString(1, "when");
That causing error: ORA-00979: not a GROUP BY expression
My application using query like:
SELECT to_char(data,1), SUM(vlue) as sum FROM test GROUP BY to_char(data, 2);
PrepState.toString(1, "YYYY-MM");
PrepState.toString(2, "YYYY-MM");Ah. Reproduced in the first chunk of PL/SQL below.
The second chunk is a workaround.
Basically, SQL is parsed by the syntax engine and optimizer to get an execution plan. Then you can have a sequence of "bind, execute, fetch, fetch, fetch..., bind, execute..."
Since you can have multiple binds for a single SQL parse, then the fact that the first set of binds all happen to have the same value doesn't mean the next set will.
The optimizer needs to be 100% sure that the value in the select must always be the same as the value in the group by, so you can't have two separate (and therefore potentially different) bind variable mappings. [Given the right circumstances, the optimizer might do all sorts of tricks, such as using materialized views and function-based indexes.]
Misleadingly, it actually fails on the 'EXECUTE' step of DBMS_SQL rather than the PARSE.
declare
v_sql varchar2(1000) :=
'select to_char(created,:b1), count(*) '||
' from user_objects u '||
' group by to_char(created,:b2) '||
' order by to_char(created,:b3)';
v_fmt varchar2(10) := 'YYYY';
v_cur number;
v_ret_str varchar2(10);
v_ret_num number;
v_ret number;
begin
v_cur := dbms_sql.open_cursor;
dbms_sql.parse(v_cur, v_sql, dbms_sql.native );
dbms_sql.define_column_char (v_cur, 1, v_ret_str, 10);
dbms_sql.define_column (v_cur, 2, v_ret_num);
dbms_sql.bind_variable( v_cur, ':b1', v_fmt );
dbms_sql.bind_variable( v_cur, ':b2', v_fmt );
dbms_sql.bind_variable( v_cur, ':b3', v_fmt );
v_ret := dbms_sql.execute( v_cur );
WHILE ( dbms_sql.fetch_rows(v_cur) > 0 ) LOOP
dbms_sql.column_value_char (v_cur, 1, v_ret_str );
dbms_sql.column_value (v_cur, 2, v_ret_num );
dbms_output.put_line('>'||v_ret_str||':'||v_ret_num);
END LOOP;
end;
declare
v_sql varchar2(1000) :=
'select to_char(created,f.fmt), count(*) '||
' from user_objects u, (select :b1 fmt from dual) f '||
' group by to_char(created,f.fmt) '||
' order by to_char(created,f.fmt)';
v_fmt varchar2(10) := 'YYYY';
v_cur number;
v_ret_str varchar2(10);
v_ret_num number;
v_ret number;
begin
v_cur := dbms_sql.open_cursor;
dbms_sql.parse(v_cur, v_sql, dbms_sql.native );
dbms_sql.define_column_char (v_cur, 1, v_ret_str, 10);
dbms_sql.define_column (v_cur, 2, v_ret_num);
dbms_sql.bind_variable( v_cur, ':b1', v_fmt );
v_ret := dbms_sql.execute( v_cur );
WHILE ( dbms_sql.fetch_rows(v_cur) > 0 ) LOOP
dbms_sql.column_value_char (v_cur, 1, v_ret_str );
dbms_sql.column_value (v_cur, 2, v_ret_num );
dbms_output.put_line('>'||v_ret_str||':'||v_ret_num);
END LOOP;
end;
/ -
Error ORA-00979: not a GROUP BY expression
I have to run a query to list the Product_code, stock_level, and the total quantity ordered
The tables are as follows:
PRODUCT:
PRODUCTCODE PRODDESCRIPTION PRICE STOCKLEVEL
p1 carpet 40 10000
p2 tile 20 100000
p3 pergo 50 50000
PRODLINE:
ORDERNUMBER PRODCODE QUANTITY
o1 p1 1000
o1 p2 500
o2 p3 200
o3 p1 600
o3 p3 100
o4 p2 1000
o5 p2 800
Here is my SQL Statement:
SELECT pl.PRODCODE, SUM(pl.QUANTITY), pr.STOCKLEVEL
FROM PRODLINE pl, PRODUCT pr
WHERE pl.PRODCODE=pr.PRODUCTCODE
GROUP BY pl.PRODCODE;
RESULT:
ORA-00979: not a GROUP BY expression
Can someone please assist?Welconme to the forum!
895231 wrote:
... Here is my SQL Statement:
SELECT pl.PRODCODE, SUM(pl.QUANTITY), pr.STOCKLEVEL
FROM PRODLINE pl, PRODUCT pr
WHERE pl.PRODCODE=pr.PRODUCTCODE
GROUP BY pl.PRODCODE;
RESULT:
ORA-00979: not a GROUP BY expression
Can someone please assist?Remember the ABC's of GROUP BY:
When you use a GROUP BY clause and/or an aggregate fucntion, then everything in the SELECT clause must be:
(A) an <b>A</b>ggregate function,
(B) one of the "group <b>B</b>y" expressions,
(C) a <b>C</b>onstant, or
(D) something that <b>D</b>epends entirely on the above. (For example, if you "GROUP BY TRUNC(dt)", you can SELECT "TO_CHAR (TRUNC(dt), 'Mon-DD')").
In your query, pr.stocklevel is none of the above.
The previous respondent show how you can make it one of the "group <b>B</b>y" expressions, which is noramlly how you would handle this situation.
Alternatively, you could make it an <b>A</b>ggregate function, like this:
SELECT pl.PRODCODE
, SUM (pl.QUANTITY) AS total_quantity
, MIN (pr.STOCKLEVEL) AS stokclevel
FROM PRODLINE pl
, PRODUCT pr
WHERE pl.PRODCODE = pr.PRODUCTCODE
GROUP BY pl.PRODCODE; -
ORA-00979: not a GROUP BY expression ORA-01722: invalid number error
This is my follwing code:
select isin,nomenclature,sum(total_balance),c_itd_rddt,c_itd_intrrt from
select distinct instru.c_int_isin isin,
instru.c_int_longdesc nomenclature,
to_char(abs(acpos.acp_totbal),
'999999999999,99,99,990.00')total_balance,
c_itd_rddt,
c_itd_intrrt
from cs_instru_t instru,
cs_instrudetls_t insdtls,
cs_acpos_t acpos
where instru.c_int_instruid = insdtls.c_itd_instruid
and acpos.acp_instruid = instru.c_int_instruid
and acpos.acp_acntnum = 'SG030001'
and instru.c_int_instypid in (1)
and insdtls.c_itd_rddt > ('31-Dec-2010')
and instru.c_int_isin not in
(select spsec.c_ssg_isinno from cs_splsecgrp_t spsec) and acpos.acp_totbal!=0
group by instru.c_int_instruid,
instru.c_int_longdesc,
insdtls.c_itd_rddt,
instru.c_int_insstts,
instru.c_int_isin,
insdtls.c_itd_rddt,
acpos.acp_totbal,c_itd_intrrt
--order by extract(year from c_itd_rddt),c_itd_intrrt
union
select c_srm_prntisin isin,c_int_longdesc nomenclature,to_char(abs(acpos.acp_totbal),
'999999999999,99,99,990.00') total_balance,c_itd_rddt,
c_itd_intrrt from cs_instrudetls_t insdtls,cs_strmap_t map,cs_instru_strips instru,cs_acpos_t acpos
where c_int_instruid=c_srm_prncplinsid
and c_itd_instruid=c_int_instruid
and c_srm_prncplinsid=acp_instruid
and acp_acntnum='SG030001'
)view1
group by isin
I want to group by isin only as only isin is same and the rest of the fields are different.But I want to display all the fields.Please Help
I am getting the following errors:
ORA-00979: not a GROUP BY expression
ORA-01722: invalid numberwat abt the other error ora-01722 not a valid number. How to take sum of total_balance which is to_char
Maybe you are looking for
-
How to install a second drive?
I just received my Media Hub that has a 1 TB drive. I also ordered a 2nd 1 TB drive which will arrive tomorrow. Is it best to perform the initial installation with the 2nd new drive installed? Or is it best to do the intitial setup without the ne
-
Repeating hearder on each group record?
Hi guys. Currently my report consists of different products in 1 day, and each products have around 40 records. So I'm thinking to make the header appear at the top of each new product data, this is to improve the convenient to view the report, beca
-
Can access mail on home IMAP server from work, but not at home
At home I have an Xserve running Snow Leopard Server with IMAP service enabled. This runs all my personal email. Even Gmail and iCloud accounts have their incoming mail forwarded to that server, because I prefer to house my own data. I have dynamic D
-
JNI equivalent of a void * pointer
Hi I am writing a java wrapper for a method which returns a void * pointer. This void * pointer is then taken as input to all the other native methods I call subsequently. How should i be casting this void * pointer in Java , should it be an Object[]
-
Move terminal window with simple mouseclick+drag in openbox
Hej, as i don't need the mouse in terminals i am wondering if there was a way to drag an undecorated urxvt window without the need of pressing the ALT-key. i am using openbox as a wm. does anyone know of an elegant way to achieve that? thank you