exact fetch returns more than requested number: retrieve first row

I have this statement:
FOR l IN C1 LOOP
 select amount,customer_id   INTO F_AMT,I_custid from zerorize where doc_id = l.doc_id and trans_type = C_py;
END LOOP;
I got this error:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at line 172
I want to change my sql statement in such a way, it gets the first line. How am I suppose to add my where clause condition?

If you don't have a way to restrict your query to return only 1 row according to the data, you can use the line number...
for example

select data, data2, .....
from (
select data, data2, ....., rownum rn
from table
)
where rn = 1

Tags: Database

Similar Questions

  • Error creating a salary. ORA-01422: exact fetch returns more than the requested number of rows in the hr_maintain_proposal_swi procedure insert_salary_proposal package

    Hi all

    We try to add new proposal for a salary of some employees from form August 1, 2015 (the Date of the beginning of employee)

    There is no existing salary proposal doesn't exist for these employees.

    We get below error.


    ORA-01422: exact fetch returns more than the requested number of rows in the hr_maintain_proposal_swi procedure insert_salary_proposal package


    Help, please.

    Thank you

    Tarun

    Hi John,.

    If it helps, take a look at the following note:

    ORA-01422 exact Fetch returns more than number of lines requested in Hr_maintain_proposal_swi (Doc ID 1673527.1)

    Kind regards

    Rajen

  • ORA-01422: exact fetch returns more than number of rows - FIX?

    Dear experts of PL/SQL,

    I encounter this problem when running under procedure, how this can be exceeded? Procedure was running well for the last few weeks and we have this problem all of a sudden:

    ORA-01422: exact fetch returns more than number of lines

    CREATE OR REPLACE PROCEDURE DBA_MAINT. () SQL_EXEC_DRILLDOWN

    beginsnapid in numbers

    endsnapid in numbers

    )

    AS

    begin_date varchar2 (30);

    End_date varchar2 (30);

    statName VARCHAR2 (64);

    err_msg VARCHAR2 (100);

    The CNT number;

    cursor c1

    is

    Select stat_name,

    Sum in the NTC

    de)

    Select instance_number,

    stat_name,

    ((VALUE) max - min (VALUE)) COUNTY

    of dba_hist_sysstat

    where stat_name in ("run the County", 'parse count (total)', "parse count (hard)")

    and snap_id between beginsnapid

    and endsnapid

    Instance_number group, stat_name)

    Stat_name group

    Union of all the

    Select stat_name,

    Sum in the NTC

    de)

    Select instance_number,

    stat_name,

    Round (((value) - (VALUE) min Max) / 1000000) COUNTY

    of DBA_HIST_SYS_TIME_MODEL

    where stat_name in ("DB CPU", "background time cpu", 'sql execute elapsed time', 'analysis elapsed time', ' parse hard time elapsed ")

    and snap_id between beginsnapid

    and endsnapid

    Instance_number group, stat_name)

    Stat_name Union group all the

    Select stat_name,

    MySQL as cnt

    de)

    Select a.stat_name stat_name,

    (b.value - a.value) VALUE

    dba_hist_sysstat a, dba_hist_sysstat b

    where a.dbid = b.dbid

    and a.instance_number = b.instance_number

    and a.stat_id = b.stat_id

    and a.snap_id = beginsnapid

    and b.snap_id = endsnapid

    and a.stat_name in ('physical reads',

    "physical Scriptures."

    "physical read IO total number of applications."

    "physical write IO requests total."

    "Physics read total multi block requests."

    "total multi block request writing for the physical box,.

    ("reading session logic")

    and a.instance_number = b.instance_number)

    Stat_name group;

    Start

    Start

    Select distinct TO_CHAR (END_INTERVAL_TIME, "MM/DD/YYYY HH24 '")

    in begin_date

    of dba_hist_snapshot

    where snap_id = beginsnapid;

    Select distinct TO_CHAR (END_INTERVAL_TIME, "MM/DD/YYYY HH24 '")

    in end_date

    of dba_hist_snapshot

    where snap_id = endsnapid;

    -DBMS_OUTPUT. Put_line (begin_date);

    -DBMS_OUTPUT. Put_line (end_date);

    exception

    When no_data_found

    then

    null;

    end;

    C1_rec IN C1

    LOOP

    Start

    Insert

    in DBA_MAINT. Values (DB_SQL_EXEC_DETAILS)

    beginsnapid,

    endsnapid,

    begin_date,

    End_date,

    c1_rec.stat_name,

    c1_rec. CNT

    );

    -DBMS_OUTPUT. Put_line (c1_rec.stat_name |) »      '|| c1_rec. CNT);

    exception

    When no_data_found

    then

    null;

    end;

    end loop;

    commit;

    end;

    /

    Reasons to explain above, but I think it would be more appropriate select latest END_INTERVAL_TIME as follows

    Select TO_CHAR ((max (END_INTERVAL_TIME)), "MM/DD/YYYY HH24")

    in begin_date

    of dba_hist_snapshot

    where snap_id = beginsnapid;

    Select TO_CHAR ((max (END_INTERVAL_TIME)), "MM/DD/YYYY HH24")

    in end_date

    of dba_hist_snapshot

    where snap_id = endsnapid;

  • exact fetch returns more than number of lines

    Hello

    I have here is the procedure to kill session from blocking. It works fine if a row is returned to select it.
    How can I change to operate multiple lines?

    CREATE OR REPLACE PROCEDURE kill_blocking IS
    l_sid NUMBER (10);
    l_serial NUMBER (10);
    l_wait NUMBER (10);
    l_username VARCHAR2 (20);
    sqlstmt VARCHAR2 (1000);
    BEGIN
    SELECT s1. SID, s1.serial #, s2.seconds_in_wait, s2.username
    IN l_sid, l_serial, l_wait, l_username
    V $ lock l1.
    v$ session s1,.
    v$ lock l2,.
    v$ session s2,.
    v$ sql sqlt1.
    v$ sql sqlt2
    WHERE s1. SID = l1. SID
    AND s2. SID = l2. SID
    AND sqlt1.sql_id = s2.sql_id
    AND sqlt2.sql_id = s1.prev_sql_id
    AND l1. BLOCK = 1
    AND l2.request > 0
    AND l1.id1 = l2.id1
    AND l2.id2 = l2.id2;
    IF l_username = "APP" AND l_wait > 100
    THEN
    sqlstmt: =.
    "ALTER SYSTEM KILL SESSION"'.
    || To_char (l_sid)
    || ','
    || To_char (l_serial)
    || '''';
    Dbms_output.put_line (sqlstmt);
    EXECUTE IMMEDIATE sqlstmt;
    END IF;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    Dbms_output.put_line ('no data found');
    END;
    /


    SQL > exec kill_blocking;
    BEGIN kill_blocking; END;

    *
    ERROR on line 1:
    ORA-01422: exact fetch returns more than number of lines
    ORA-06512: at TK. "KILL_BLOCKING", line 8
    ORA-06512: at line 1

    Hello

    You can use the procedure below

    create or replace

    PROCEDURE kill_blocking_mig

    IS

    l_sid NUMBER (10);

    l_serial NUMBER (10);

    l_wait NUMBER (10);

    l_username VARCHAR2 (20);

    sqlstmt VARCHAR2 (1000);

    CURSOR status_cus IS

    SELECT s1. SID, S1. Serial #, s2.seconds_in_wait, s2.username

    V $ lock l1.

    v$ session s1,.

    v$ lock l2,.

    v$ session s2,.

    v$ sql sqlt1.

    v$ sql sqlt2

    WHERE s1. SID = l1. SID

    AND s2. SID = l2. SID

    AND sqlt1.sql_id = s2.sql_id

    AND sqlt2.sql_id = s1.prev_sql_id

    AND l1. BLOCK = 1

    AND l2.request > 0

    AND l1.id1 = l2.id1

    AND l2.id2 = l2.id2;

    BEGIN

    OPEN status_cus.

    loop

    extract the status_cus IN l_sid, l_serial, l_wait, l_username;

    When the output status_cus % notfound;

    IF l_username = "APP" AND l_wait > 100 THEN

    sqlstmt: = ' EDIT the SYSTEM KILL SESSION "' | To_char (l_sid) | ',' || To_char (l_serial) | '''';

    Dbms_output.put_line (sqlstmt);

    EXECUTE IMMEDIATE sqlstmt;

    END IF;

    end loop;

    EXCEPTION

    WHEN NO_DATA_FOUND THEN

    Dbms_output.put_line ('no data found');

    END;

  • Error - ORA-01422: exact fetch returns more than number of lines

    Hello

    I get the error when running script below. Please help me.

    /****************** ERROR ******************/

    Error report:
    ORA-01422: exact fetch returns more than number of lines
    ORA-06512: at line 71
    01422 00000 - "exact fetch returns more than number of lines."
    * Cause: Exact extraction specified number is less than the returned rows.
    * Action: Rewrite the query or change the number of rows requested



    /****************** SCRIPT ******************/

    DECLARE

    l_xml XMLTYPE: = XMLTYPE ("< LoggingInformation >
    < commandeEmplacement >
    < name > ServiceCall1 < / name >
    < StartTime > 2010-01-18T 11: 11:41.570664 - 00:00 < / StartTime >
    < EndTime > 2010-01-18T 11: 11:43.8987741 - 00:00 < / EndTime >
    < ElapsedTime > 00:00:02.3281101 < / ElapsedTime >
    < status > completed < / status >
    < ExceptionMessage > error here... < / ExceptionMessage >
    < ExceptionStackTrace > Stack Trace here... < / ExceptionStackTrace >
    < ServiceLoggingEntries >
    < item >
    < foo > 1 < / foo >
    < / ServiceInformation >
    < item >
    < foo > 2 < / foo >
    < / ServiceInformation >
    < / ServiceLoggingEntries >
    < InformationLoggingEntries >
    < ProcessInformation >
    < bar > 1 < / >
    < / ProcessInformation >
    < ProcessInformation >
    < bar > 2 < / >
    < / ProcessInformation >
    < / InformationLoggingEntries >

    < / commandeEmplacement >
    < commandeEmplacement >
    < name > ServiceCall2 < / name >
    < StartTime > 2010-01-18T 11: 11:41.570664 - 00:00 < / StartTime >
    < EndTime > 2010-01-18T 11: 11:43.8987741 - 00:00 < / EndTime >
    < ElapsedTime > 00:00:02.3281101 < / ElapsedTime >
    < status > completed < / status >
    < ExceptionMessage > error here... < / ExceptionMessage >
    < ExceptionStackTrace > Stack Trace here... < / ExceptionStackTrace >
    < ServiceLoggingEntries >
    < item >
    < foo > 3 < / foo >
    < / ServiceInformation >
    < item >
    < foo > 4 < / foo >
    < / ServiceInformation >
    < / ServiceLoggingEntries >
    < InformationLoggingEntries >
    < ProcessInformation >
    < bar > 3 < / >
    < / ProcessInformation >
    < ProcessInformation >
    < bar > < / > 4
    < / ProcessInformation >
    < / InformationLoggingEntries >
    < / commandeEmplacement >

    < commandeEmplacement >
    < name > ServiceCall3 < / name >
    < StartTime > 2010-01-18T 11: 11:41.570664 - 00:00 < / StartTime >
    < EndTime > 2010-01-18T 11: 11:43.8987741 - 00:00 < / EndTime >
    < ElapsedTime > 00:00:02.3281101 < / ElapsedTime >
    status of <>failed < / status >
    < ExceptionMessage > error here... < / ExceptionMessage >
    < ExceptionStackTrace > Stack Trace here... < / ExceptionStackTrace >
    < / commandeEmplacement >
    (< / LoggingInformation > ');

    v_txt VARCHAR2 (2000);

    BEGIN

    SELECT XMLTYPE. Extract (value (TT),'/ CommandInformation/Name/Text () '). GETSTRINGVAL()
    IN v_txt
    TABLE (XMLSEQUENCE (l_xml. Extract('/LoggingInformation/CommandInformation'))) tt;

    DBMS_OUTPUT. Put_line (v_txt);

    END;

    Select...

    means only 1 row can be returned.

    Your select returns more than one line.
    Change v_txt in a collection, define a cursor and the extraction of it or change the statement, i.e. it returns a single line.

    ---------
    Sybrand Bakker
    Senior Oracle DBA

  • "Getting the error 'exact fetch returns more than number of lines.

    Hi try to run a query of Iam
    but when I run what it it gives an error
    Error report:
    ORA-01422: exact fetch returns more than number of lines
    ORA-06512: at line 9 level
    01422 00000 - "exact fetch returns more than number of lines."
    * Cause: Exact extraction specified number is less than the returned rows.
    * Action: Rewrite the query or change the number of rows requested
    here's my querey

    SET SERVEROUTPUT ON
    DECLARE
    Emp_table_type TYPE IS an ARRAY OF
    hr_api_transactions % ROWTYPE INDEX BY PLS_INTEGER;
    my_emp_table emp_table_type;

    BEGIN
    I'm in 1.53
    LOOP
    SELECT * INTO my_emp_table (i) FROM hr_api_transactions
    WHERE transaction_ref_table = 'PER_ALL_VACANCIES ';
    END LOOP;
    BECAUSE me IN my_emp_table. FIRST... my_emp_table. LAST
    LOOP
    DBMS_OUTPUT. Put_line (my_emp_table (i) .transaction_document);
    END LOOP;
    END;

    Hello

    'Re missing you the bulk of the Collections. Ask that you well want to have a glance on manual of oracle collections.
    Replace your code...

    DECLARE
    TYPE emp_table_type IS TABLE OF
    hr_api_transactions%ROWTYPE INDEX BY PLS_INTEGER;
    my_emp_table emp_table_type;
    BEGIN
    SELECT *
    BULK COLLCT INTO my_emp_table
    FROM hr_api_transactions
    WHERE transaction_ref_table = 'PER_ALL_VACANCIES';
    FOR i IN my_emp_table.FIRST..my_emp_table.LAST
    LOOP
    DBMS_OUTPUT.PUT_LINE(my_emp_table(i).transaction_document);
    END LOOP;
    END;
    

    Before you run the above script, don't forget to run the

    set serveroutput on
    

    I hope this helps.

    PS-> mark as Complete/useful, if the apporoach above meets the expected result

    Kind regards
    Claudy

  • ORA-01422: exact fetch returns more than number of lines

    Hello world

    I want to create a procedure only allows me to perform selection et Update in my database, I have already create the procedure and compiled without problems but when I want to run this procedure, I have this error

    ORA-01422: exact fetch returns more than number of lines

    This syntax of my procedure

    create or replace procedure app is

    i nombre := 100 ;

    o_username employees.first_name% TYPE ;

    o_lastn employees. Last_name %TYPE

    o_sal. employees % of SALARY TYPE ;

    Start

    loop

    / * display * /.

    Select first_name, LAST_NAME, SALARY

    in o_username, o_lastn, o_sal

    of admin.employees where employee_id = i;

    DBMS_OUTPUT. Put_line (' name: ' | o_username);

    DBMS_OUTPUT. Put_line (' first name: ' | o_lastn);

    DBMS_OUTPUT. Put_line (' salary: ' | o_sal)

    / * put a days * /.

    Update employees

    put salary = salary + salary *0.25 where employee_id = i;

    commit;

    / * dbms_put.put_line (' new salary is: ' | ') sell2_tab (i)); * /

    i := i + 1 ;

    / * list the data * /

    / * dbms_put.put_line (' new salary is: ' ") ;*/

    output when i = 200;

    end loop;

    end app;

    thnx

    create or replace procedure APP is

    Constant START_ID EMPLOYEES. EMPLOYEE_ID % TYPE: = 100;

    Constant END_ID EMPLOYEES. EMPLOYEE_ID % TYPE: = 200;

    O_USERNAME EMPLOYEES. Type % name;

    O_LASTN EMPLOYEES. Last_name type %;

    O_SAL EMPLOYEES. Kind of % of SALARY;

    Start

    for rec (select FIRST_NAME, LAST_NAME, salary

    the admin. EMPLOYEES

    where EMPLOYEE_ID between START_ID and END_ID)

    loop

    DBMS_OUTPUT. Put_line (' name: ' | rec. NAME);

    DBMS_OUTPUT. Put_line ("first name:" | ") Rec. LAST_NAME);

    DBMS_OUTPUT. Put_line (' salary: ' | rec. SALARY) / * setting days * /.

    end loop;

    Update EMPLOYEES

    Set SALARY = SALARY + SALARY * 0.25

    where EMPLOYEE_ID between START_ID and END_ID;

    commit;

    end app;

  • Error ORA-01422 apex: exact fetch returns more than the required number of line

    Hi people,

    Apex 4.1
    I have a page that works like a charm.

    Based on my application I need I have to perform the same operation for the different regions. As a quick and better method, I copied the page and branched, it inspires tab for this region.

    The problem is that the original page works fine.
    I haven't changed anything except the parent set to this copied page tab and works that I find with the above error.

    It allows me to make the first entry on this page, but when I try to access the page again it gives me this error.

    The error in detail is as below:

    is_internal_error: false
    ora_sqlcode:-1422
    ora_sqlerrm: ORA-01422: exact fetch returns more than number of lines
    Component.type: APEX_APPLICATION_PAGE_PROCESS
    Component.ID: 214936714355373108
    Component.Name: EMP_LEAVE_INFO line
    error_backtrace:
    ORA-06512: at line 1
    ORA-06512: at "SYS." DBMS_SYS_SQL", line 1926
    ORA-06512: at "SYS." WWV_DBMS_SQL', line 973
    ORA-06512: at "SYS." WWV_DBMS_SQL', line 999
    ORA-06512: at "APEX_040200.WWV_FLOW_DYNAMIC_EXEC", line 806
    ORA-06512: at "APEX_040200.WWV_FLOW_DML", line 336
    ORA-06512: at "APEX_040200.WWV_FLOW_PROCESS", line 332

    >
    As a quick and better method, I copied the page and branched, it inspires tab for this region.
    >

    Copy paste is never advisable. It can be fast in some cases, there is an anti-pattern.

    Be aware that the automatic extraction of the APEX line is based on a component of demand.

    It is possible that your automatic rowfetch is based on the element of your previous page. If you for example to change the name of the table, but do not change the reference is the primary key value, then you can pass a value to your table that was not unique. This would result in ORA-01422.

    Find the value of the session element and run your query.

    Concerning

    Nico

  • ERRO ORA-01422: exact fetch returns more than number of lines

    SET SERVEROUTPUT ON
    create or replace procedure copy
    AS

    cursor c2 IS
    Select t.country_code
    transactions t;

    v_lc_details_current_hist c2% rowtype;
    v_country_code transactions.country_code% TYPE;

    Start


    Open c2;
    loop

    extract the c2 in v_lc_details_current_hist;


    OUTPUT WHEN c2% NOTFOUND;



    Select the country_code in v_country_code of transactions;

    DBMS_OUTPUT. Put_line (v_country_code);

    end loop;

    Close c2;

    end;
    /



    I'm gettintha error ORA-01422: exact fetch returns more than number of lines

    Please help me

    [email protected] wrote:
    Select the country_code in v_country_code of transactions;
    -It's to return several rows, and the SELECT INTO statement expects that one line.

    A SELECT INTO statement can be used if you want a query to return only one row. Otherwise use bulk collect and a variable of class to contain the result lines multiples.

  • error report: ORA-01422: exact fetch returns more than number of lines

    I get this error in table form that should be filled by selecting a week called item description in this page by a dynamic action.

    In the main table, I have two primary keys and so two foreign keys in the secondary table even if it is not a type of form master detail.

    When I select the week description point and the related records in the form of sound. But it gives the above error.

    In the main table, there are two records of same, in this user name folders is different which defines the unique character of the file.

    It is really basic and happens if you have something like this in your code - the SQL code is supposed to return exactly ONE value and it returns two or more:

    Denes Kubicek

  • ORA-01422 exactly fetch returned more rows than expected

    Hi all

    Some1 can you please suggest what is the difference between "ORA-01422 exactly fetch returned more rows than expected" and too many errors of lines.

    Concerning
    Arpit

    TOO_MANY_ROWS is a predefined exception that allows to capture the ORA-01422. It simply means that we don't need to declare our own exception to cope.

    SQL> DECLARE
      2
      3      lv_Dummy        dual.dummy%TYPE;
      4
      5  BEGIN
      6
      7      SELECT
      8          dummy
      9      INTO
     10          lv_Dummy
     11      FROM
     12          (   SELECT dummy FROM DUAL UNION ALL
     13              SELECT dummy FROM DUAL
     14          );
     15  END;
     16  /
    DECLARE
    *
    ERROR at line 1:
    ORA-01422: exact fetch returns more than requested number of rows
    ORA-06512: at line 7
    
    SQL> set serveroutput on
    SQL> DECLARE
      2
      3      lv_Dummy        dual.dummy%TYPE;
      4
      5  BEGIN
      6
      7      SELECT
      8          dummy
      9      INTO
     10          lv_Dummy
     11      FROM
     12          (   SELECT dummy FROM DUAL UNION ALL
     13              SELECT dummy FROM DUAL
     14          );
     15  EXCEPTION
     16      WHEN TOO_MANY_ROWS THEN
     17          dbms_output.put_line('TOO_MANY_ROWS is built in exception to allow us to capture ORA-01422');
     18
     19  END;
     20  /
    TOO_MANY_ROWS is built in exception to allow us to capture ORA-01422
    
    PL/SQL procedure successfully completed.
    
    SQL> DECLARE
      2
      3      lv_Dummy        dual.dummy%TYPE;
      4      lex_TooManyRows EXCEPTION;
      5
      6      PRAGMA EXCEPTION_INIT(lex_TooManyRows, -1422);
      7  BEGIN
      8
      9      SELECT
     10          dummy
     11      INTO
     12          lv_Dummy
     13      FROM
     14          (   SELECT dummy FROM DUAL UNION ALL
     15              SELECT dummy FROM DUAL
     16          );
     17  EXCEPTION
     18      WHEN lex_TooManyRows THEN
     19          dbms_output.put_line('lex_TooManyRows is our exception to allow us to capture ORA-01422');
     20
     21  END;
     22  /
    lex_TooManyRows is our exception to allow us to capture ORA-01422
    
    PL/SQL procedure successfully completed.
    

    HTH

    David

  • A row of Sub query returns more than 1 row!

    I'm trying to update the values in one table from another table and get the error: void line query returns More Than 1 row.

    I want to PRV_NAME B chart updated in the table A PRV_NAME where A.PRVID = B.PRVID where B.PRV_TYPE = M"

    The two paintings were all unique PRVID, however, table B has PRVID that have the same name. So the data in table B can look like this:

    PRVID PRV_NAME
    1234 PHOENIX MED
    1235 MED BAG
    1236 MED BAG
    1237 OVERLAND
    etc...

    So, as you can see are the unique PRVID, but not the PRV_NAME. Is this the reason why I get this error?

    I do not build the tables and have no control over what is put in them. If this is the reason for the error, is there a way to fix this?

    For reference, here's the request. Maybe there's something wrong with that?


    Update msb_prv_source ps
    Set ps.prv_name =

    (select prv00.prv00_prv_name
    of prv00_prv prv00
    Join msb_prv_source ps
    On prv00.prv00_prv_id = ps.prvid
    where prv00.prv00_prv_type = am')

    Published by: user12296489 on April 19, 2013 10:46
    /* Formatted on 4/19/2013 2:00:43 PM (QP5 v5.185.11230.41888) */
    MERGE INTO msb_prv_source a
         USING (SELECT *
                  FROM prv00_prv
                 WHERE prv00_prv_type = 'M') b
            ON (a.prv00_prv_id = b.prvi)
    WHEN MATCHED
    THEN
       UPDATE SET a.prv_name = prv00_prv_name
    
  • Einreihig subquery returns more than one query

    Hello

    I get the following error: einreihig subquery returns more than one request. I don't know how I should debug this application. As far as I know, subqueries can return only 1 row...: S

    I've only Oracle SQL Developer to run/test of my queries. I can run the query with ROWNUM < 5000, which gives no error. If I run with ROWNUM > 5000 and ROWNUM < 6000 then the error pops up...

    This is the query:
    with
    DATES as 
      (select (select min(REC_DATE) from STOCK) as FROM_DT, (select max(CHANGE_DATE) from STOCK_ADJUST) as TO_DT from DUAL),
    MONTHS as 
      (select add_months(trunc(FROM_DT,'MM'),ROWNUM-1) as DT from DATES connect by ROWNUM <= months_between(TO_DT, FROM_DT)+1),
    CALCULATIONS as
      (select 
        PNM.PNM_AUTO_KEY PNM_KEY,
        MONTHS.DT DT, 
        NVL((select sum(stm.qty_rec) from stock stm WHERE STM.REC_DATE < MONTHS.DT AND STM.PNM_AUTO_KEY = PNM.PNM_AUTO_KEY GROUP BY pnm_auto_key),0) INCOMING, 
        NVL((select sum(saj.qty_adj) from stock_adjust saj 
                                    inner join stock stm on saj.stm_auto_key = stm.stm_auto_key 
                                    inner join parts_master pnm on stm.pnm_auto_key = pnm.pnm_auto_key where SAJ.CHANGE_DATE < MONTHS.DT AND STM.PNM_AUTO_KEY = PNM.PNM_AUTO_KEY group by pnm_auto_key),0) OUTGOING
      from MONTHS, PARTS_MASTER PNM)
    SELECT
      ROWNUM, CALCULATIONS.PNM_KEY PNM_AUTO_KEY, CALCULATIONS.DT COUNT_DATE,CALCULATIONS.INCOMING QTY_RECEIVED, CALCULATIONS.OUTGOING QTY_USED, (CALCULATIONS.INCOMING + CALCULATIONS.OUTGOING) QTY_BALANCE
    FROM
      CALCULATIONS;
    Published by: layout of the code user574699 on November 17, 2008 02:10

    the problem is that you use the same alias in your view online as well as in your main query in the second statement-nvl...

    HTH

  • Single - row subquery returns more than one line.

    Hi Experts

    I am faced with error

    ORA-01427: single - row subquery returns more than one line.

    MyQuery is:

    select
       TO_CHAR(T.MR_REG_DATE,'DD')                     "DATE"
       ,CASE  
         WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) between 0 and 1 THEN ' 01'||'  - ('||'0 - 1 Month)'
         WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 2 AND 12 THEN ' 02'||'  - ('||'2 - 12 Months)'
         WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 13 AND 60 THEN ' 03'||'  - ('||'1 - 5 Years)'
         WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 61 AND 120 THEN ' 04'||'  - ('||'5 - 10 Years)'
         WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) > 120 then ' 05'||'  - ('||'> 10 Years)'
        END age
      ,count(T.Mr_Code) No_of_Patient
      ,(  SELECT count(x.mr_code) mr_code
             FROM HMIS_MRINFO X
             where X.mr_reg_date between &FRM_DATE AND &TO_DATE
               and X.mr_code NOT in (select Y.mr_code from hmis_pat_add_dis_detail Y
                                      WHERE Y.mr_reg_date between &FRM_DATE AND &TO_DATE
                                    )
            GROUP BY CASE  
                       WHEN trunc((MONTHS_BETWEEN(X.MR_REG_DATE,X.MR_DOB))) between 0 and 1 THEN ' 01'||'  - ('||'0 - 1 Month)'
                       WHEN trunc((MONTHS_BETWEEN(X.MR_REG_DATE,X.MR_DOB))) BETWEEN 2 AND 12 THEN ' 02'||'  - ('||'2 - 12 Months)'
                       WHEN trunc((MONTHS_BETWEEN(X.MR_REG_DATE,X.MR_DOB))) BETWEEN 13 AND 60 THEN ' 03'||'  - ('||'1 - 5 Years)'
                       WHEN trunc((MONTHS_BETWEEN(X.MR_REG_DATE,X.MR_DOB))) BETWEEN 61 AND 120 THEN ' 04'||'  - ('||'5 - 10 Years)'
                       WHEN trunc((MONTHS_BETWEEN(X.MR_REG_DATE,X.MR_DOB))) > 120 then ' 05'||'  - ('||'> 10 Years)'
                      END 
      ) Missing_MR
    from hmis_mrinfo T,hmis_pat_add_dis_detail M
    where T.mr_code = M.mr_code(+)
      and T.mr_reg_date between &FRM_DATE AND &TO_DATE
      &AGE_GRP
    GROUP BY T.MR_REG_DATE
             ,CASE  
               WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) between 0 and 1 THEN ' 01'||'  - ('||'0 - 1 Month)'
               WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 2 AND 12 THEN ' 02'||'  - ('||'2 - 12 Months)'
               WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 13 AND 60 THEN ' 03'||'  - ('||'1 - 5 Years)'
               WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) BETWEEN 61 AND 120 THEN ' 04'||'  - ('||'5 - 10 Years)'
               WHEN trunc((MONTHS_BETWEEN(T.MR_REG_DATE,T.MR_DOB))) > 120 then ' 05'||'  - ('||'> 10 Years)'
              END 
    ORDER BY T.MR_REG_DATE;
    

    Please give some advice / solution.

    I think this might do it for you

    Select

    TO_CHAR (T.MR_REG_DATE, 'DD') "DATE."

    CASE

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) between 0 and 1 THEN ' 01' |'.  - ('||' 0-1 month)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 2 AND 12 THEN ' 02' |'.  - ('||' 2-12 months)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 13 AND 60 THEN ' 03' |'.  - ('||' 1-5 years)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 61 AND 120 THEN ' 04' |'.  - ('||' 5-10 years)'

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) > 120 then ' 05' |'.  ' - ('| ' > 10 years).

    Age of the END

    count (T.Mr_Code) No_of_Patient

    , count (case when t.mr_code NOT in (select Y.mr_code from hmis_pat_add_dis_detail Y))

    WHERE Y.mr_reg_date between & FRM_DATE AND & TO_DATE)

    then t.mr_code

    (end) Missing_MR

    of hmis_mrinfo T, hmis_pat_add_dis_detail M

    where T.mr_code = M.mr_code (+)

    and between T.mr_reg_date & FRM_DATE AND & TO_DATE

    & AGE_GRP

    T.MR_REG_DATE GROUP

    CASE

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) between 0 and 1 THEN ' 01' |'.  - ('||' 0-1 month)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 2 AND 12 THEN ' 02' |'.  - ('||' 2-12 months)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 13 AND 60 THEN ' 03' |'.  - ('||' 1-5 years)"

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) BETWEEN 61 AND 120 THEN ' 04' |'.  - ('||' 5-10 years)'

    WHEN trunc ((MONTHS_BETWEEN (T.MR_REG_DATE, T.MR_DOB))) > 120 then ' 05' |'.  ' - ('| ' > 10 years).

    END

    ORDER BY T.MR_REG_DATE;

  • replacement selection on 2 columns and return more than 1 column lists

    Hello

    I try to build 2 other selection lists and each selection list should return more than 1 column

    2 PART_ID and PART_SPECIFICATION columns

    Now I build a select on PART_ID as list

    Select part_id d, part_id parts r;

    The result should be:

    PART_ID and PART_SPECIFICATION a PART_ID column must be the text of PART_SPECIFICATION

    The selection based on PART_SPECIFICATION list should be like

    Select d, part_id parts r part_specification;

    Now, it should be posted part_specification in PART_SPECIFICATION and part_id in PART_ID.

    This is because a user knows the part_id and the other knows only the specification

    Please help me

    Siegwin

    Hi Siegwin,

    Check your application Page 7 (copy of the 500 page) using the selection instead of plugin list, it gives all the values.

    and works very well,

    use ajax process to get the Xml data in page elements

    Here are the changes

    application process: getData

    point of application: TEMPORARY_APPLICATION_ITEM

    create a function in the html header pull_multi_value() page

    and he gave the floor to point page p7_empno on the attribute of the html form element as onchange = "pull_multi_value (this.value)"; ""

    This can help you.

    Leave.

Maybe you are looking for

  • Can I have a specific page for new tabs?

    What the Devil. I download a NEW version of this slow browser and then you guys change the way a new tab opens. Any thoughts on the setting of this code? Edited by a moderator because of the language. See the rules and lines guidelines .

  • Analyze the error message and unable to run the system restore.

    In an analysis of viruses with Avira, I get the following message and the scan cannot be completed; "The exception unknown software exception (0xc0000409) occurred in the application at location 0x0042ff93. Click on OK to terminate the program. "It o

  • Upgrade of the fourth Gen Time Capsule

    I have one Capsule 2 TB fourth generation model A1409) and it turned out to be very reliable.  Unfortunately, the installed HARD drive is finally running out of storage space and so I'm looking to upgrade.  I searched the web and found a lot on the T

  • How to get certain attributes of a chart?

    How to get the special attributes of a graph of two variables such as Max (variable Y) and the variable value of X at the maximum point of the variable Y.

  • COD 5 game

    We've been havign trouble with the appeal of the game have to! A Tin to come on our screen, and we kick off the game! This box indicates "live update engine COM module doesn't work! Says he'll report problem this poses a lot of problems with our game