Table - Incorrect number of records

Hello

I have created an opaque view in RPD containing a select statement. I've updated the number of lines and 40823 records. When I create a table in the answers, only 695 records are returned.

Can anyone help?

Thank you

Yes, if person_id performs each record of your separate opaque view and then use it in opaque mode and to report also.

Then he will get the correct results.

Kind regards
Sandeep

Tags: Business Intelligence

Similar Questions

  • ADF table large number of records

    JDeveloper 12.1.2

    I have an engine of research as well as an array of result. In some research, it is possible that the result set is more than a million records. The problem is when the user uses the table scroll bar and quickly tries to go at the end of the result set, weblogic with error, memory, it blocks. What is the best practice to handle this in the user interface?

    I think of several ways to resolve and would like if anyone has experience with one of the following:

    1. when the user performs the search, run select count (*), and determine the number of records search will return. If say greater then 1000, warn the user to refine the search criteria. This seems to have made an extra trip to DB

    2. implementation of the pagination of the table instead of the scroll bar. Is this possible in the last ADF table?

    3. go to the front and back only to say 1,000 records and warn the user that not all records are returned, and that it would be best to refine the criteria. Similar to 1, except no extra trip to DB

    Thanks in advance for comments and maybe the solution

    Insufficient memory is caused by the underlying ViewObject that retrieves and keeps track of all the lines to the position where the user scrolls to the bottom of the table. It is behavior of the VO when the VO is configured with the access mode "Scrollable", which is the default access mode setting. For example, if the user scrolls to the No.100000 line, the VO to get and keep in mind all the lines n ° 1 to No.100000. This means that the table pagination will NOT help you!

    Fortunately, you have two simple options out-of-the-box:

    1. The 1st option is to configure the original Version of extraction does not exceed a fixed number of lines (for example 5000). You can do it in the "General" of the VO definition dialog page. Go to the 'Tuning' section, select the option "only up to line number" and enter the number chosen in the field of text next to it. In this way, what the condition is entered by the user, the VO will seek no more than the specified line number.
    2. The 2nd option is to configure the VO with "Range Paging" access mode rather than the default access mode "Scrollable". With the access mode "Range Paging" the VO not go get and keep in mind all the lines until the currently selected line, but he keeps in memory a few line ranges (for example only a few dozen lines). This way you will not be affected by an OutOfMemory error even if the user scroll down to a millionth line. The downside is that when it is configured with "Range Paging" the VO will have to rerun the query each time when he needs to pick a different range of lines. If the execution of the query is slow to the DB server, this will load the DB server and the user will experience delays when scrolling in a different range of lines.
      Take a look at the documentation for more details here: View object performance tuning (read article 9.1.5).

    Dimitar

    Post edited by: Dimitar Dimitrov

    If you decide to use "Range Paging", don't forget to set the appropriate size, which is not less than the usual number of visible lines in your table on the page. If you set the size of the lower range, then the original Version will have to fetch more than a range of lines, which will need more of a running query. The size of default in the definition of VO is 1, but it is not important. The important value is the size of the range that is defined in the iterator binding in the PageDef, which overrides the setting of the VO. The default value for the size of the links of the iterator range is 25.

  • How can I recover only odd or even number of records in the table?

    Hello

    How can I recover only odd or even number of records in the table?

    Thank you

    Hi IndiMinds,

    Alternatively, you can use in queries. :

    Odd:

    SELECT *.

    Of

    (SELECT rownum row_count, id, name FROM bigemp

    )

    WHERE mod (row_count, 2) = 1;

    Still:

    SELECT *.

    Of

    (SELECT rownum row_count, id, name FROM bigemp

    )

    WHERE mod (row_count, 2) = 0;

    Thank you

  • Can I get the total number of records that meet the conditions of a query using the Table API?

    Hello

    A < row > TableIterator is returned when I ask operations using the index of tables. If I want to get the total number of records, I count one by one using the returned TableIterator < row >.


    Can I get the total number of records directly meets the conditions of the query?

    I can get the total number of records directly the request of the meeting of the conditions of CLI using the command Global table - name tableName - count - index index-name-field fieldName - start startValue-end endValue.

    Can I get the same results using the Table API?

    I used MongoDB and NoSQL Oracle for about a year. According to the experience of the use of these dbs, I think mongoDB querying interface is powerful. In the contras, the query interface is relatively simple, which results is a lot of work that is usually a long time in the client side.

    Hello

    Counting records in a database is a tricky thing.  Any system that gives you an accurate count of the records will have a hotspot of concurrency on updates, namely the place where the counting is maintained.  Such a count is a problem of performance in addition to competitive access problem.   The problem is even more difficult in a system widely distributed such a NoSQL database.

    The CLI has overall command that counts, but does so by brutal force - iterate keys that correspond to the parameters of the operation.  This is how you must do this within the API.  There is not a lot of code, but you have to write.  You certainly want to use TableIterator TableAPI.tableKeysIterator (), because a key iteration is significantly faster than the iteration of lines.  Just one iteration and count.

    If you use TableAPI.multiGet () and a key with a touch of brightness full then, in fact, count the results as they are returned in a single piece (a list).

    Kind regards

    George

  • difference in number of records in the table of audit

    Hi all

    We strive to remove lines of verification based on timestamp(sysdate-30) table(sys.aud$). The command I used below.

    SQL > set lines 200

    COL OWNER FORMAT A15

    Select TABLE_NAME, nom_tablespace, OWNER, num_rows, STATUS, DEGREE, TABLE_LOCK, LAST_ANALYZED, PARTITIONED, USER_STATS from dba_tables where TABLE_NAME = '& TABLE_NAME';

    SQL > SQL > type table_name value: AUD$

    OWNER, TABLE_NAME, NUM_ROWS STATUS DEGREE TABLE_LO LAST_ANALY BY USING NOM_TABLESPACE

    --------------- ------------------------------ ------------------------------ ---------- -------- ---------- -------- ---------- --- ---

    SYS AUD$ 934991 SYSTEM VALID ACTIVE 1 08/07/2012 No. No.

    SQL > delete / * + parallel (aud$ 8) * / of sys.aud$ where NTIMESTAMP # < sysdate-30; (I don't know why I put NTIMESTAMP #, although I see # aud TIMESTAMP column $ table, the above query, I got from sr dba)

    3140994 deleted rows. (reason why so many records have been deleted I see 934991 lines from dba_tables view)


    After that I saw the difference in number of records.


    SQL > select / * + parallel (aud$ 8) * / count (*) from sys.aud$ where TIMESTAMP # < sysdate-30;

    COUNT (*)

    ----------

    0

    SQL > select / * + parallel (aud$ 8) * / count (*) from sys.aud$ where NTIMESTAMP # < sysdate-30; -> Why there are differences in the number of records if I put NTIMESTAMP #in query)


    COUNT (*)

    ----------

    50

    Thank you

    Bhavani.

    SQL > SELECT count (*) from sys.aud$ where ntimestamp #.<>

    COUNT (*)
    ----------
    0

    Try this one.  Good luck.

  • by comparing the number of records in the table child

    I have 3 tables below:

    Table 1 - Parent Table
    Table table2 child - who has the number of records for each record in Table1 (row_id in Table1 corresponds to par_row_id in Table2)
    Child table table 3 - has that number of records for each record in Table1 (row_id in Table1 corresponds to par_row_id in table 3)

    I would like to run an Oracle SQL query to identify all the separate row_id on Table1, for which the number of child records in Table2 does not match the number of child records in Table3

    I ask for help to identify the best way to identify these records in the parent table. If possible an example too, please.

    Thank you

    Published by: cseshan on February 3, 2013 01:35

    All by adding the simplest example (with the sample data that you were supposed to provide) below

    create table table1(row_id number primary key);
    
    create table table2(par_row_id number references table1);
    
    create table table3(par_row_id number references table1);
    
    insert into table1 values(1);
    insert into table2 values(1);
    insert into table3 values(1);
    
    insert into table1 values(2);
    insert into table2 values(2);
    insert into table2 values(2);
    
    insert into table1 values(3);
    insert into table3 values(3);
    insert into table3 values(3);
    
    insert into table1 values(4);
    insert into table2 values(4);
    insert into table2 values(4);
    insert into table2 values(4);
    insert into table3 values(4);
    insert into table3 values(4);
    
    commit;
    
    with child1_cnt as
    (
      select par_row_id,count(*) cnt
      from table2
      group by par_row_id
    ),
    child2_cnt as
    (
      select par_row_id,count(*) cnt
      from table3
      group by par_row_id
    ),
    all_counts as
    (
      select p.row_id,nvl(c1.cnt,0) c1_cnt,nvl(c2.cnt,0) c2_cnt
      from table1 p
       left outer join child1_cnt c1
         on ( p.row_id = c1.par_row_id )
       left outer join child2_cnt c2
         on ( p.row_id = c2.par_row_id )
    )
    select row_id,c1_cnt,c2_cnt
    from all_counts
    where c1_cnt != c2_cnt;
    
    ROW_ID C1_CNT C2_CNT
    ------ ------ ------
         2      2      0
         4      3      2
         3      0      2 
    
  • Get number of records in all tables

    Hello

    I try to get the number of records from all the tables by using a dynamic query. I don't know how to put the placeholder value. I tried the code below.

    SET SERVEROUTPUT SIZE 1000000
    DECLARE
    CURSOR table_list
    IS
    Select OBJECT_NAME from user_objects
    where object_type in ('TABLE')
    and object_name not like '% AUDIT_DDL % '.
    AND object_name not like 'MD_ % '.
    AND object_name not like "EXT_ %.
    AND object_name not like 'STG_ % '.
    AND object_name not like '% SYS_ ".
    AND object_name not like '% TMP_ ".
    AND object_name not like 'TEMP_ %.
    order by 1;
    v_count NUMBER: = 0;
    query_str VARCHAR2 (1000);
    BEGIN
    FOR table_name IN table_list
    LOOP
    query_str: = ' SELECT COUNT (1) FROM "| table_name. Object_name;
    dbms_output.put_line (query_str);
    dbms_output.put_line (' Table name:' | table_name.) OBJECT_NAME);
    v_count: = run immediately query_str;
    dbms_output.put_line (' Table name:' | table_name.) OBJECT_NAME | ', County'. v_count);
    END LOOP;
    END;

    I know that I am doing wrong in the "BOLD" lines. But do not know how to fix it. Help, please. Thanks in advance.

    Change:

    v_count:= execute immediate query_str;
    

    TO

    execute immediate query_str into v_count;
    
  • Number of records per column in each table

    Hi all

    I need to get the number of records by column for each table in a schema.

    Is there a way I get the list of columns in each table in a schema and get the number of records per column where the count > 0?

    We have oracle 10g

    Thank you

    Smidreb wrote:
    You are right, but we're going to run the script as soon as we move

    the script below gives me a correct result.

    If it works well for you, then it works OK for me.

    Realize that Oracle is that I/O block-level.
    As a general rule, any LINE is a single block.
    Realize that is 1 column "count (*)" is correct, then all the columns in the same row are correct.
    This obsessive compulsion to count each COLUMN in each LINE borders on real PARANOIA!

  • number of records/rows in a Table

    Hello

    This might be a basic question, but I don't have an idea how to do this.

    Could you please tell me, how to get a number of files/lines in a specific table?

    Thank you
    Luke

    It takes time to count the number of records if the size of the array is cuddly

    YOU can count to 1000000000000000000 as quickly as you count to 10?
    If it takes you more time to count a lot of things, why do you expect Oracle to do better than you?
    Get a clue!

    It takes more time to count the objects more than less!

  • Unable to get the total number of records processed by the processor of trade rules

    Details of the environment

    ======================

    Disqualification Version: 12.1.3.0.0


    I use a business rules processor to implement multiple business rules on one record and I am looking for a summary of the number of records increased and does not have a specific rule.


    To illustrate:
    Suppose there are 2 rules, invalid number in Column1 and valid number on Column2.
    10 records to process and 3 folders don't rule 1 (valid on column1) and 9 entered failure of rule 2 (valid number on Column2).

    In the browser of result of the processor Business, the number of past records and failed is displayed but is not part of the output of the processor itself. In the example above, there will be 1 pass and 9 fail records and given the values of said the total number of records can be derived which is 10.

    This is why the expected output will be:
    Success of failure
    Rule 1:7 (10-3) 3
    Rule 2: 1 (10-1) 9
    Note: The number of records that failed can be derived from the table of the rule ID but I don't know how to get the total number of records in order to calculate the number of records that a given rule.

    I tried to publish the County of acceptance and rejection in the browser of result of the processor Business in an intermediate table and ask the same intermediate table to get the pass and fail values but Disqualification does not allow to write and read the same intermediary object in a single process. What is the best way to get the number of records total handled by the processor business rules? This kind of attributes (that do not exist only in the browser of result) can be included in the output of the processor in the next version of the Disqualification?

    In addition, the intermediate table contains only 1 sheet with pass and failure values while the exceptions which have individual failure on each rule contains 12 Archives. What would be the best approach to merge a single record into multiple records according to the example below?

    Staging table
    Success of failure
    1 9

    Exception table
    Single ID ID rule
    Rule 1 Record1
    Rule 1 Record2
    Rule 1 record Record3
    Rule 2 Record1

    Exception table with: staging Table data merge
    Rule ID ID Unique Pass Fail Total
    Rule 1 1 9 10 Record1
    Rule 1 1 9 10 Record2
    Recording rule 1 Record3 1 9 10
    Record1 rule 2 1 9 10

    Please notify.

    Hi Jason,

    The best way to explain how to do this is with an example project (DXI). I'll send you one in offline mode.

    -Mike

  • Number of records in the interval of 30 minutes.

    Hi all

    I'm trying to find the number of records in 30-minute intervals. Having said that, I am discovering many records I get in 30 minutes. In my table, I have a column called 'Last_UPDATE_DATE' with the date and time. Can someone help me, ways to achieve. I tried to think about how to get, but do not get the required information.

    Hello

    as Pablolee suggested, it is not easy to understand without examples of data.

    Here's a possible solution:

    with timeranges as

    (

    Select trunc (sysdate) +(level-1) *(30/24/60) starttime

    trunc (sysdate) + (level) *(30/24/60) endtime

    from dual connect by level<=>

    )

    Select b.starttime, count (*)

    from yourtable one

    Join timeranges b

    on (a.last_update_date > = b.starttime and a.last_update_date)<>

    B.starttime group;

    If it does not match your need please post some sample data (check the Re: 2. How can I ask a question on the forums?)

    and validate the information to reproduce your case.

    Kind regards.

    Alberto

  • Self-join on a table if you retrieve records

    Hello PL/SQL gurus and experts.

    I use Oracle Database 11 g Enterprise Edition Release 11.2.0.1.0 - 64-bit Production version
    I have table-

    drop table t1;

    create table t1 (stud_NM, stud_id) that choose

    "Vikas", 1 Union select them all double

    'Andy', 2 Union select them all double

    'Chi', 3 Union double all select them

    "Derek", 4 Union select them all double

    "Maeva", 5 Union all double select them

    "Tom", 6 Union select them all double

    "Messi", 7 double Union all select them

    "Kitty", 8 from dual;

    drop table t2;

    create table t2 (stud_id, Class, CDate) in select

    1, 'BA', '20120101' from dual union select all

    1, 'MA', '20120101' from dual union select all

    2, "BSc", '20120531' from dual union select all

    3, 'MCA', '20120606' from dual union select all

    4, 'MCA', '20120701' from dual union select all

    4, "Btech", '20120715' from dual union select all

    5, "MTech", '20120730' from dual union select all

    6, 'MSc', '20120801' from dual union select all

    6, 'MSc', '20120802' from dual union select all

    7, 'MA', '20120815' from dual union select all

    8, 'MA', '20120815' from dual;

    I have to get the outcome of the condition-

    Extract Stud_Name, the number of records that have an illness like that of one who, if the combination of Stud_Name & CDate is same then count this combination only once to another so Stud_Name & CDate are different then to count in the different documents-

    Currently I use the following query to get the output-

    Select t1.stud_NM, count (distinct WHEN CASE orig. CDate <>ali. CDate and then another t1.stud_NM

    CASE WHEN orig. CDate = ali. CDate then '1' another null

    end

    end) County

    from t1

    T2 orig,

    T2 ali

    where t1.stud_id = orig.stud_id

    and t1.stud_id = ali.stud_id

    T1.stud_NM group

    order of t1.stud_NM

    which gives the following result, which seems so.

    STUD_NM COUNTY
    -------- ----------
    1 Andy
    Chi 1
    Derek 2
    Kitty 1
    Kristien 1
    Messi 1
    Tom 2
    Vikas 1

    8 selected lines.

    If you want to confirm if I just do or is it just because of the data it gives me good result?

    Kindly help me thanks in advance for your time and effort.

    You can do this simply

    Select stud_nm, count (distinct stud_nm: cdate) cnt

    from t1

    left

    Join t2

    On t1.stud_id = t2.stud_id

    Group

    by stud_nm

  • difference in number of records

    Hi all

    I'm trying to get a number of records in this table and I get 2 different output, select count (*) shows 68560 and after update stats NUM_ROWS watch 68323, can someone help me figureout why the difference.

    SQL > select count (*) in the dcepcd;

    COUNT (*)
    ----------
    68560

    SQL > select num_rows in dba_tables where table_name = 'DCEPCD ';

    NUM_ROWS
    ----------
    68323

    Thank you / JJ

    864653 wrote:
    Hi all

    I'm trying to get a number of records in this table and I get 2 different output, select count (*) shows 68560 and after update stats NUM_ROWS watch 68323, can someone help me figureout why the difference.

    SQL > select count (*) in the dcepcd;

    COUNT (*)
    ----------
    68560

    SQL > select num_rows dba_tables where table_name = 'DCEPCD ';

    NUM_ROWS
    ----------
    68323

    Thank you / JJ

    When you gather stats, Oracle is probably just sampling the data. This means that Oracle would be approximately the number of lines, not give you the actual number of lines. Please read the documentation on DBMS_STATS:
    http://docs.Oracle.com/CD/E11882_01/AppDev.112/e25788/d_stats.htm

    Here is a relevant excerpt:
    Table 141-39 GATHER_DATABASE_STATS procedure parameters
    estimate_percent
    Percentage of rows estimate (NULL means calculates): the valid range is [0.000001,100]. Use the constant DBMS_STATS. AUTO_SAMPLE_SIZE to Oracle to determine the size of the sample appropriate for good statistics. It is the default value. The default value can be changed using the SET_DATABASE_PREFS procedure SET_GLOBAL_PREFS procedure, procedure SET_SCHEMA_PREFS and SET_TABLE_PREFS procedure.

    Summary: You should get the actual number of lines if gather you stats with estimate_percent => NULL. Be aware that Oracle does not by default for performance reasons.

  • Difference in the number of records for the same date - 11 GR 2

    Guy - 11 GR on Windows2005 2, 64-bit.

    BILLING_RECORD_KPN_ESP - is a monthly partitioned table.
    BILLING_RECORD_IDX #DATE - is a local index on "charge_date" in the table above.

    SQL > select / * + index (BILLING_RECORD_KPN_ESP BILLING_RECORD_IDX #DATE) * /.
    2 (trunc (CHARGE_DATE)) CHARGE_DATE;
    3 count (1) Record_count
    4. IN "RATOR_CDR". "" BILLING_RECORD_KPN_ESP ".
    where the 5 CHARGE_DATE = January 20, 2013.
    Group 6 by trunc (CHARGE_DATE)
    5 m

    CHARGE_DATE RECORD_COUNT
    ------------------ ------------
    2401 20 January 13-> > some records here.

    -> > Here I can see only '2041' records for Jan/20. But in the query below, it shows "192610" for the same date.

    Why is this difference in the number of records?

    SQL > select / * + index (BILLING_RECORD_KPN_ESP BILLING_RECORD_IDX #DATE) * /.
    (trunc (CHARGE_DATE)) CHARGE_DATE,
    2 count (1) Record_count
    3. FOR "RATOR_CDR." "" BILLING_RECORD_KPN_ESP ".
    "4 where CHARGE_DATE > 20 January 2013."
    Group of 5 by trunc (CHARGE_DATE)
    6 order by trunc (CHARGE_DATE)
    5 m

    CHARGE_DATE RECORD_COUNT
    ------------------ ------------
    192610 20 January 13-> > more records here
    JANUARY 21, 13 463067
    JANUARY 22, 13 520041
    23 JANUARY 13 451212
    JANUARY 24, 13 463273
    JANUARY 25, 13 403276
    JANUARY 26, 13 112077
    27 JANUARY 13 10478
    28 JANUARY 13 39158

    Thank you!

    Because in the second example you also select rows that have a nonzero component.

    The first example selects only rows that are 00:00:00

    (by the way, you should ask questions like this in the forum SQL)

  • Get number of records in the date range - IDE: PLSQL Developer

    I want to count the number of records of members who register within a date range specified, based on effective and expiration dates and their "elg_code". I posted the SQL code for some examples of data. What I would like to see returned is in three columns of the counties where the eff_date date_exp members fall within the date range specified by the SQL and have an Elg_code of ' ' (space).

    So what I would like is all members with elg_code ' ' where he eff_dt and exp_dt range is April 2012, 2012 MAY & JUN 2012. Thus, according to data from the sample I posted, Mark, where his elg_code record is ' ', his eff_dt is 01/01/2011 and April 2012 (30/04/2012) is his exp_dt. Range of the brand statement may 2012, but not MAY or JUNE of 2012. Marty would tally for the APR and MAY because his eff_dt is before MAY 2012 and his exp to MAY 2012. etc...

    According to the data below, the results should resemble:

    APR MAY JUN
    4-3-2

    APR should have FRANK, MARK, MARTY, MARY.
    MAY should have FRANK, MARTY, MARY
    JUN should have FRANK and MARIE

    NOAM and JOHN should not appear as his records with elg_code ' ' have no documents eff_dt and exp_dt which are April-June 2012.

    So what I tried without success as it appears that I have a kind of Cartesian question (?), is:

    Select count (m1.mbr_name) APR,
    Count (m2.mbr_name) MAY,
    Count (m3.mbr_name) JUN
    mbr2 M1,
    mbr2 m2,
    mbr2 m3
    "where m1.eff_dt < ' 01 - may - 2012"
    "and m1.exp_dt > ' 01-Apr-2012.
    and m1.elg_code = ' '
    "and m2.eff_dt < 1 June 2012"
    "and m2.exp_dt > ' 01 - may - 2012"
    and m2.elg_code = ' '
    "and m3.eff_dt < 1 July 2012"
    "and m3.exp_dt > 1 June 2012"
    and m3.elg_code = ' '


    Here's the DML

    Thanks for any help!


    create table mbr2 (mbr_name varchar (10), varchar (1) grpid eff_dt date, date of exp_dt elg_code varchar (1))
    Commit

    insert into mbr2 values ('BRAND', 'A', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (April 30, 2012 ',' DD-MM-YYYY '), ' ')
    insert into mbr2 values ('BRAND', 'A', to_date (May 1, 2012 ',' DD-MM-YYYY '), to_date (31 December 2013 ',' DD-MM-YYYY '), 'C')

    insert into mbr2 values ('MARTY', 'A', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (May 31, 2012 ',' DD-MM-YYYY '), ' ')
    insert into mbr2 values ('MARTY', 'A', to_date (June 1, 2012 ',' DD-MM-YYYY '), to_date (31 December 2013 ',' DD-MM-YYYY '), 'C')

    insert into mbr2 values ('FRANK', 'B', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (June 30, 2012 ',' DD-MM-YYYY '), ' ')
    insert into mbr2 values ('FRANK', 'B', to_date (July 1, 2012 ',' DD-MM-YYYY '), to_date (31 December 2013 ',' DD-MM-YYYY ""), 'C')

    insert into mbr2 values ('MARY', 'B', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (June 30, 2012 ',' DD-MM-YYYY '), ' ')
    insert into mbr2 values ('MARY', 'B', to_date (July 1, 2012 ',' DD-MM-YYYY '), to_date (31 December 2013 ',' DD-MM-YYYY ""), 'C')

    insert into mbr2 values ('JOHN', 'C', to_date (January 1, 2011 ',' DD-MM-YYYY '), to_date (July 1, 2011 ',' DD-MM-YYYY '), ' ')
    insert into mbr2 values ('JOHN', 'C', to_date (July 1, 2011 ',' DD-MM-YYYY '), to_date (1 January 2012 ',' DD-MM-YYYY ""), 'C')

    insert into mbr2 values ("NOAM" 'd', to_date (July 1, 2012 ',' DD-MM-YYYY '), to_date (31 December 2013 ',' DD-MM-YYYY '), ' ' ")

    Commit

    This gives you a report for the current month and the two front. Column header must be adjusted ;-)

    select
      count(
      case
      when
        eff_dt < add_months(trunc(sysdate,'MM'), -1)
        and
        exp_dt >= add_months(trunc(sysdate,'MM'), -2)
      then 1
      end) April
    , count(
      case
      when
        eff_dt < add_months(trunc(sysdate,'MM'), 0)
        and
        exp_dt >= add_months(trunc(sysdate,'MM'), -1)
      then 1
      end) May
    , count(
      case
      when
        eff_dt < add_months(trunc(sysdate,'MM'), 1)
        and
        exp_dt >= add_months(trunc(sysdate,'MM'), 0)
      then 1
      end) June
    from mbr2
    where
    elg_code = ' '
    and
    eff_dt < add_months(trunc(sysdate,'MM'), 1)
    and
    exp_dt >= add_months(trunc(sysdate,'MM'), -2)
    
    APRIL     MAY     JUNE
    4     3     2
    

Maybe you are looking for