Cursor based on a condition

Hi all,
I have two tables like
Table_1
col1
A
B
C
D
E
Table_2
col1 col2
A 1
A     2
A     3
B     1
C     3
C     4
C     5
D     2
D     3
D     6
I need to fetch each row from Table_1 and select col2 for corresponding col1 value in Table_2. This should be a very trivial task for you Oracle Gurus. Please help me out.
I can declare a cursor for Table_1 to get each row. But for the cursor to Table_2, how can I pass the condition about col1 value? Am I missing anything very basic? Can I use PL/SQL collections (pl/sql tables or arrays for this)? If so, how? Please guide me.
FYI, my Oracle version is Release 9.2.0.6.0
Thanks in advance
Sarma.

Sure you can:
DECLARE
  CURSOR c1
  IS
    SELECT *
      FROM table_1
  CURSOR c2(
    p_col1 table_2.col1%TYPE
  IS
    SELECT *
      FROM table_2
     WHERE col1 = p_col1
BEGIN
  FOR r1 IN c1
  LOOP
    -- do whatever you want with table_1 data
    FOR t2 IN c2(r1.col1)
    LOOP
      NULL; -- do whatever you want with table_2 data
    END LOOP; 
  END LOOP;
  -- COMMIT; if needed should go here
END;
not tested
C.

Similar Messages

  • How to declare cursor in procedure based on if condition?

    Hi Experts,
    In sql server I have eprocedure in which I declare cursor like this:
    IF (@int_cntCondition = 1 )
    BEGIN
    DECLARE Date_Cursor CURSOR FOR select HolidayCcy,HolidayDate from Definition..HolidayCalendar WITH (NOLOCK) where
    HolidayCcy in (@Deposit_Currency,@Alternate_Currency)
    AND CONVERT(SMALLDATETIME,CONVERT(VARCHAR(25),HolidayDate,106)) >=
    CONVERT(SMALLDATETIME,CONVERT(VARCHAR (25),@T_Date,106))
    END
    ELSE
    BEGIN
    DECLARE Date_Cursor CURSOR FOR select HolidayCcy,HolidayDate from Definition..HolidayCalendar WITH (NOLOCK) where
    HolidayCcy in (@Deposit_Currency,@Alternate_Currency,@Bank_Base_Currency)
    AND CONVERT(SMALLDATETIME,CONVERT(VARCHAR(25),HolidayDate,106)) >=
    CONVERT(SMALLDATETIME,CONVERT(VARCHAR(25),@T_Date,106))
    END
    I have to declare same cursor in oracle based on 'if' condition.
    But in oracle stored procedur cursor has to declare outside of Begin statment of procedure, so how can I declare This cursor in Orracle?
    if anyone know about it, Plese help or send any link to refer.
    Thanks.

    Digambar wrote:
    I have to declare same cursor in oracle based on 'if' condition.The simple answer is to use a reference cursor data type. E.g.
    SQL> create or replace procedure GetObjects( cur in out sys_refcursor, objType varchar2 ) is
      2  begin
      3          case
      4                  when upper(objType) = 'EMP' then
      5                          open cur for select * from emp;
      6 
      7                  when upper(objType) = 'DEPT' then
      8                          open cur for select * from dept;
      9 
    10          end case;
    11  end;
    12  /
    Procedure created.
    SQL>
    SQL>
    SQL> --// define a host refcursor variable in client
    SQL> --// (e.g. VB, .Net, Java, etc)
    SQL> var c refcursor
    SQL>
    SQL> --// make the stored proc call
    SQL> begin GetObjects( :c, 'EMP' ); end;
      2  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> --// process cur reference in client
    SQL> print c
         EMPNO ENAME      JOB              MGR HIREDATE                   SAL       COMM     DEPTNO
          7369 SMITH      CLERK           7902 1980/12/17 00:00:00        800                    20
          7499 ALLEN      SALESMAN        7698 1981/02/20 00:00:00       1600        300         30
          7521 WARD       SALESMAN        7698 1981/02/22 00:00:00       1250        500         30
          7566 JONES      MANAGER         7839 1981/04/02 00:00:00       2975                    20
          7654 MARTIN     SALESMAN        7698 1981/09/28 00:00:00       1250       1400         30
          7698 BLAKE      MANAGER         7839 1981/05/01 00:00:00       2850                    30
          7782 CLARK      MANAGER         7839 1981/06/09 00:00:00       2450                    10
          7788 SCOTT      ANALYST         7566 1987/04/19 00:00:00       3000                    20
          7839 KING       PRESIDENT            1981/11/17 00:00:00       5000                    10
          7844 TURNER     SALESMAN        7698 1981/09/08 00:00:00       1500          0         30
          7876 ADAMS      CLERK           7788 1987/05/23 00:00:00       1100                    20
          7900 JAMES      CLERK           7698 1981/12/03 00:00:00        950                    30
          7902 FORD       ANALYST         7566 1981/12/03 00:00:00       3000                    20
          7934 MILLER     CLERK           7782 1982/01/23 00:00:00       1300                    10
    14 rows selected.
    SQL>
    SQL>
    SQL> --// make the stored proc call
    SQL> begin GetObjects( :c, 'DEPT' ); end;
      2  /
    PL/SQL procedure successfully completed.
    SQL>
    SQL> --// process cur reference in client
    SQL> print c
        DEPTNO DNAME          LOC
            10 ACCOUNTING     NEW YORK
            20 RESEARCH       DALLAS
            30 SALES          CHICAGO
            40 OPERATIONS     BOSTON
    SQL>

  • Can we take standard report for all sales orders based on the condition typ

    Hi all,
    Based on the condition type, we need to take a report for sales orders on the particular date.
    Thanks and Regards.....VM

    Hello again.
    Searching for a solution, I found a Logical Database for sales orders, that have all the information that you need.
    Using like reference the post of Bhagavatula, in the same transaction SQVI you can use, instead of the suggested join, you can select a logical database called VAV in Data source.
    This logical database links the tables, VBAK, VBAP, VBUK and KONV that is the central point of the question.
    You can list the information of logical database using the transaction SLDB.
    In 'Logical Database' inform VAV.
    Press F8 to list all the fields.
    More information about logical database in:
    Link: [SAP Logical Database|http://help.sap.com/saphelp_46C/helpdata/EN/9f/db9b5e35c111d1829f0000e829fbfe/content.htm]

  • VT02N - do PGI and Invoice for certain deliveries either based on certain conditions

    Hi Friends ,
    We are using VT04 for creating shipments . While shipment completion stage in VT02N   an activity profile has been maintained  which does both the Goods issue and Invoice.
    We have a business requirement , PGI and Invoice should be created only for specific set of deliveries based on certain conditions.
    Is there any standard way to do this or by using user exits.
    Please guide.
    Thanks,
    Nileshsa.

    what about adding a check in userexit RV60AFZZ, when the condition is not met during invoice creation, error out and disable the creation of the invoice document?

  • How to create a column based on a condition ?

    Hi all,
    I am trying to create a stored procedure that will return ID,Name and a column of type bit called  called checked based on a condition 
    please review my code and tell me what is wrong with it 
    ALTER PROCEDURE [dbo].[SelectStoresNames]
    AS
    BEGIN
    WITH locations_CTE ( ID,  Name, Checked)
    AS
    select loc.ID,loc.Name,
    (case when loc. ID in (select distinct a.StoreId
    from mPromoteStores a
    inner join mPromote b
    on a.PromoteId=b.PromoteId
    where b.promoId=144120) then 1 else 0 end as [Checked])
    FROM [dbo].[mLocations] loc where SchedulePullEnabled=1 order by  Name
    Select *
    from locations_CTE
    END

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. You have no idea!
    Temporal data should use ISO-8601 formats. Code should be in Standard SQL as much as possible and not local dialect. 
    This is minimal polite behavior on SQL forums. 
    >> I am trying to create a stored procedure that will return store_id, store_name and a column of type bit called “checked” based on a condition <<
    I fixed the vague, useless, generic data elements, made wild guesses on the DDL you did not post and got rid of the assembly language bit flags (https://www.simple-talk.com/sql/t-sql-programming/bit-of-a-problem/)
    1. IN (SELECT DISTINCT ..) is redundant
    2. aliases in alphabetic order are no help for maintaining code
    3. What is that “m” prefix? Better not be metadata...
    4. We also do not use “-cte” postfixes; tell us what the table is and not how you got it. This is another version of the “vw-” or “Volkswagen” design flaw for views.
    5. “promote” is a verb, so how can it have an identifier? Entities have identifiers. A set of  “Promotions” could have a “promo_id”, but this might be a typo ..
    6. Is “schedule_pull_enabled” another assembly language flag? I have the horrible feeling your unseen schema is not in 1NF ...
    Since you did not post DDL here is as far as I can get ..
    CREATE PROCEDURE Select_Stores_Names
    AS
    SELECT PS.store_id, PS.store_name
      FROM Promote_Stores AS PS,
                 Promotes AS P
    WHERE PS.promote_id = P.promote_id 
      AND P.promo_id = 144120  -- promo vs promote? 
      AND ???; 
    Want to follow the forum rules and try again? 
    --CELKO-- Books in Celko Series for Morgan-Kaufmann Publishing: Analytics and OLAP in SQL / Data and Databases: Concepts in Practice Data / Measurements and Standards in SQL SQL for Smarties / SQL Programming Style / SQL Puzzles and Answers / Thinking
    in Sets / Trees and Hierarchies in SQL

  • How to secure access of Report based on a condition

    Hello Experts,
    My project requirement is to secure BW Reports based on a condition. For e.g a user should be authorized to access the Report if:
    1. He is the WBS Manager of the selected WBS Element
    OR
    2. If he is authorized to access the Profit center Hierarchy Node which is the parent of the selected WBS Element.
    I think this may be achieved by using a Customer exit in the Analysis authorization but i don't know how.
    Do you have any idea, whether it is possible to achieve in BI7 Security Model? Any help will be highly appreciated.
    Thanks
    Rajat

    Hi Tomer,
    There will be a selection variable for WBS in all BW reports. If the user selects a particular WBS Element then he can only see the result of the report if he fulfill EITHER of the following conditions:
    1. If he is the WBS Manager of the selected WBS Element
    OR
    2. If he is authorized to access the Profit center Hierarchy Node which is the parent of the selected WBS Element.
    WBS managers will keep on changing so it is not possible to maintain the users in one role.
    Secondly, according to the second condition, even if the user is not WBS Manager but he is authorized to access Profit center Hierarchy Node, which is the parent of the selected WBS Element, he should view the report.
    Please let me know if don't understand the question.
    Thanks
    Rajat

  • Column value coloring Based on the condition in ssrs 2008

    Hi,
    I need to change color formating based on below conditions
    Red if <=28 days or > 65 days       
    Green if >28 and <=60 days       
    Yellow if > 60 days and <=65 days
    <=0 No color
    I tried with below IIF condition it's not working.
    =iif(Fields!HDSI13.Value<=0,
    "No color",iif((Fields!HDSI13.Value<=28
    or Fields!HDSI13.Value>64),"Red",iif((Fields!HDSI13.Value>29
    and Fields!HDSI13.Value<=60),"Green",iif((Fields!HDSI13.Value>60
    and Fields!HDSI13.Value<=65),"yellow",Nothing))))
    Can any one help me on this.
    Thanks,
    Manasa.
    Thank You, Manasa.V

    hi all,
    When i wrote like this in table report ...woking fine.
    =iif(((Fields!HDSI13.Value<=28
    and Fields!HDSI13.Value>0)
    or Fields!HDSI13.Value>64),"Red",iif((Fields!HDSI13.Value>=29
    and Fields!HDSI13.Value<=60),"Green",iif((Fields!HDSI13.Value>=61
    and Fields!HDSI13.Value<=65),"yellow",iif(Fields!HDSI13.Value<=0,"Nocolor",""))))
    Thank You, Manasa.V

  • Dropdown editable in a table based on a condition

    Hi,
    I would like to know how to solve these problems.
    1. I have a cell (of the type dropdown by key) in a table, which is editable or not, depending on a condition ? Is this is possible? Please let me know if there is a sample code
    2. So basically I have a  table that has 2 entries in it, user details and one of the fields in FLAG showing the values Yand N for the user. I want the table in the webdynpro application to show the 2 user entries and then in the Flag column have a DROPDOWNBYKEY that DEFAULTS to showing what flag the user has, but also allows the user to CHANGE the entry.
    Thanks in advance
    I appreciate for the help.

    is possible
    In your Context node which is binded to the table as DataSource, add an attribute WDY_BOOLEAN type
    In layout bind the newly created attribute to the dropdown UI element Enable property
    while filling your context node, fill the attribute with abap_true and abap_false based on your condition
    Abhi

  • 1:N mapping without using BPM , based on segment conditions

    Hi All,
    I have to send 3 different files from source based on some conditions
    1) for the first file to be sent is okay
    2) But for second file and third file i need to check some conditions
    the conditions are
    If E1EDL44 case detail fields exists   i should generate second file and i should not create any third file  (it's one or the other, not both).
    If E1EDL44 case details doesnot exist i should generate third file and not second file...
    So My confusion is how to send either second or third file (any one only)
    If i do mapping  is it sufficient or also should i use condition editor in Receiver Determination...
    Please suggest u r valuable help..
    Thanks and Regards,
    sridhar

    Hi Sridhar,
    Make ur second interface Occurence as Optional 0:1 in ur Interfaec Mapping.
    In ur Multi-mapping (Message Mapping) also make ur  message type corresponding to ur second file as Optional.
    In ur mapping check the condition and if doesnot satisfy dont populate the second message type. Check this option.
    Regards,
    Sudharshan

  • How to activate or deactivate a user-exit based a specific condition

    hi all,
    i want to activate or deactivate(make it trigger) a particular user-exit based in a condition.
    can i do that. if yes please tell me how.
    can we use COMMIT in user-exits or BADI's.
    Thanks & Regards,
    Saroja.

    Hello Saroja
    The solution provided by Rich should be used for testing purposes only in the the reverted sense:
    IF ( syst-uname ne '<specific user>' ).
      RETURN.
    ENDIF.
    " Execute user-exit for specific user
    However, for serious programming you should use a a better strategy. In principle, user-exits are either ON or OFF and, if they are ON, they are ON for <b>all </b>user which is usually not intended.
    The following example shows a (possible) strategy how to execute user-exits based on specific conditions.
    The SAP extension CATS0001 contains the component EXIT_SAPLCATS_001 with the following interface:
    FUNCTION EXIT_SAPLCATS_001.
    *"*"Lokale Schnittstelle:
    *"  IMPORTING
    *"     VALUE(SAP_TCATS) LIKE  TCATS STRUCTURE  TCATS
    *"     VALUE(SAP_PERNR) LIKE  CATSFIELDS-PERNR
    *"     VALUE(SAP_DATELEFT) LIKE  CATSFIELDS-DATELEFT
    *"     VALUE(SAP_DATERIGHT) LIKE  CATSFIELDS-DATERIGHT
    *"     VALUE(SAP_DATEFROM) LIKE  CATSFIELDS-DATEFROM OPTIONAL
    *"     VALUE(SAP_DATETO) LIKE  CATSFIELDS-DATETO OPTIONAL
    *"  TABLES
    *"      SAP_ICATSW STRUCTURE  CATSW
    *"      SAP_ICATSW_FIX STRUCTURE  CATSW OPTIONAL
      INCLUDE ZXCATU01.
    ENDFUNCTION.
    The include ZXCATU01 contains only the following coding:
      CALL FUNCTION 'Z_EXIT_SAPLCATS_001'
        EXPORTING
          sap_tcats            = sap_tcats
          sap_pernr            = sap_pernr
          sap_dateleft         = sap_dateleft
          sap_dateright        = sap_dateright
          SAP_DATEFROM         = SAP_DATEFROM
          SAP_DATETO           = SAP_DATETO
        tables
          sap_icatsw           = sap_icatsw
          SAP_ICATSW_FIX       = SAP_ICATSW_FIX.
    This function module is just a copy of the exit function module in the customer namespace.
    Let us assume that your condition at which the user-exit should be executed is that the employee (SAP_PERNR) belongs to a specific controlling area. Thus, we make another copy of the original exit function module and call this fm within the "general" customer-specific exit function module:
    FUNCTION z_exit_saplcats_001.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(SAP_TCATS) LIKE  TCATS STRUCTURE  TCATS
    *"     VALUE(SAP_PERNR) LIKE  CATSFIELDS-PERNR
    *"     VALUE(SAP_DATELEFT) LIKE  CATSFIELDS-DATELEFT
    *"     VALUE(SAP_DATERIGHT) LIKE  CATSFIELDS-DATERIGHT
    *"     VALUE(SAP_DATEFROM) LIKE  CATSFIELDS-DATEFROM OPTIONAL
    *"     VALUE(SAP_DATETO) LIKE  CATSFIELDS-DATETO OPTIONAL
    *"  TABLES
    *"      SAP_ICATSW STRUCTURE  CATSW
    *"      SAP_ICATSW_FIX STRUCTURE  CATSW OPTIONAL
    " User-Exit specific for employees (SAP_PERNR)
    " belonging to controlling area 1000
      CALL FUNCTION 'Z_EXIT_SAPLCATS_001_1000'
        EXPORTING
          sap_tcats      = sap_tcats
          sap_pernr      = sap_pernr
          sap_dateleft   = sap_dateleft
          sap_dateright  = sap_dateright
          sap_datefrom   = sap_datefrom
          sap_dateto     = sap_dateto
        TABLES
          sap_icatsw     = sap_icatsw
          sap_icatsw_fix = sap_icatsw_fix.
    " User-Exit specific for employees (SAP_PERNR)
    " belonging to controlling area 2000
      CALL FUNCTION 'Z_EXIT_SAPLCATS_001_2000'
        EXPORTING
          sap_tcats      = sap_tcats
          sap_pernr      = sap_pernr
          sap_dateleft   = sap_dateleft
          sap_dateright  = sap_dateright
          sap_datefrom   = sap_datefrom
          sap_dateto     = sap_dateto
        TABLES
          sap_icatsw     = sap_icatsw
          sap_icatsw_fix = sap_icatsw_fix.
    ENDFUNCTION.
    Finally, within the specific exit function module we define the condition when the exit should be executed:
    FUNCTION z_exit_saplcats_001_1000.
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(SAP_TCATS) LIKE  TCATS STRUCTURE  TCATS
    *"     VALUE(SAP_PERNR) LIKE  CATSFIELDS-PERNR
    *"     VALUE(SAP_DATELEFT) LIKE  CATSFIELDS-DATELEFT
    *"     VALUE(SAP_DATERIGHT) LIKE  CATSFIELDS-DATERIGHT
    *"     VALUE(SAP_DATEFROM) LIKE  CATSFIELDS-DATEFROM OPTIONAL
    *"     VALUE(SAP_DATETO) LIKE  CATSFIELDS-DATETO OPTIONAL
    *"  TABLES
    *"      SAP_ICATSW STRUCTURE  CATSW
    *"      SAP_ICATSW_FIX STRUCTURE  CATSW OPTIONAL
      IF ( <user BELONGS to CONTROLLING area 1000> ).
        "   execute user-exit
      ELSE.
        RETURN.
      ENDIF.
    ENDFUNCTION.
    The alternative would be to place the entire coding including the conditions in the include ZXCATU01. However, in this case you can test the user exit <b>only in the context of the transaction</b> in which the user-exit is passed.
    Using the strategy I have devised you are able to test the user-exit in general and the specific user-exits <b>independent </b>of the transaction. For example, if you are already working on 6.40 or higher then you could use ABAP Unit Testing for this purpose.
    The same logic can be applied for BAdI where we can have only a single active implementation.
    Finally, I hope to convince that it makes sense to spend some time into a reasonable strategy for implementing user-exits.
    Regards
      Uwe

  • Displaying record based on the condition in Crystal report

    Hi All,
    I want to display certain records in crystal based on some condition.
    For example,
    If I am having 5 student records like,
    Name  Mark1 Mark2 Mark3 Total
    aaa      40       50       60      150
    abc      30       60       40       130
    tcr        25      25        25       75
    Now in table i have only 4 fields (STUNAME, MARK1, MARK2, MARK3).
    I have to calculate the total at runtime and if total is greater than 150, then actual record should display in report.
    For example, I can use formula to calculate total but I can calculate total only after each record prints. But i want to calculate total internally only it should display in report if condition satisfies. I dont want to keep one more field for total in crystal report.
    Please help me on this.

    If the filter is not "pushed" down to the database, then Crystal will pull all of the data into memory and then filter it there.  This is not a big deal if you only have a couple of records, but it can significantly slow down a report that is pulling in more than a few records.
    An alternative, if your report is just linking tables in the Database Expert, would be to create a SQL Expression that adds the three fields together.  Using this in the Select Expert WILL push the condition down to the database.
    If you're using a command instead of linking table, they you would add this to the Where clause of the comment.  If you're using a stored proc instead of tables or a command, you would want to do this filter in the code for the stored proc.
    -Dell
    Message was edited by: Dell Stinnett-Christy

  • How to dynamically add/remove a button from the ribbon based on some condition? (Ribbon XML)

    Hi,
    I have a ribbon (done using ribbon XML) with menu options. I need to remove few buttons from the menu dynamically based on some condition. Also, I want to change the label of another button. How to achieve this programmatically? (C#)
    Thanks in advance.
    Thanks Prasad

    Hello Prasad,
    Use callbacks for populating Ribbon controls such as menu, dropDown, gallery and etc. Then you can use the
    Invalidate or
    InvalidateControl methods of the
    IRibbonUI interface to get your callbacks invoked when required. Thus, you will be able to delete the required item(s).
    You will find the following articles in MSDN helpful:
    Chapter 11: Creating Dynamic Ribbon Customizations (1 of 2)
    Chapter 11: Creating Dynamic Ribbon Customizations (2 of 2)
    To change the label of your controls at runtime you need to use the getLabel callback and call the Invalidate or InvalidateControl methods of the IRibbonUI interface. The following series of articles describe the Fluent UI in depth:
    Customizing the 2007 Office Fluent Ribbon for Developers (Part 1 of 3)
    Customizing the 2007 Office Fluent Ribbon for Developers (Part 2 of 3)
    Customizing the 2007 Office Fluent Ribbon for Developers (Part 3 of 3)

  • Doubt in the value return by the function based on given condition

    Hi,
    Below function should return the value based on the value of in_row_number_high variable.
    I have used CASE but it does't return proper value.
    How could I give that condition?
    Please help.
    FUNCTION gen_total_lane_count_pct
        in_lane_id                  edr_rpt_by_ranges_output.lane_id%TYPE,
        in_direction_id             edr_rpt_by_ranges_output.direction_id%TYPE,
        in_interval_start_date_time edr_rpt_by_ranges_output.interval_start_date_time%TYPE,
        in_interval_end_date_time   edr_rpt_by_ranges_output.interval_end_date_time%TYPE,
        in_row_number               edr_rpt_by_ranges_output.range_low%TYPE,
        in_row_number_high          edr_rpt_by_ranges_output.range_high%TYPE,
        in_lane_min                    edr_lane_by_class_report_data.v_lane%TYPE,
        in_lane_max                    edr_lane_by_class_report_data.v_lane%TYPE   
    RETURN NUMBER
    IS
         my_total             NUMBER(18);
         my_count_pct         NUMBER(18);
         my_total_pct         NUMBER(18);
         my_each_count_result NUMBER(18);
         my_count_result            NUMBER(18);
         my_total_count             NUMBER(18);
      lane_start           edr_rpt_tmp_report_lanes.site_lane_id%TYPE;
      lane_end             edr_rpt_tmp_report_lanes.site_lane_id%TYPE;
      row_start            NUMBER(12);
      row_end              NUMBER(12);
    BEGIN
         my_count_pct       := 0 ;
           SELECT MIN(site_lane_id)
             INTO lane_start
          FROM edr_rpt_tmp_report_lanes
         WHERE edr_rpt_tmp_report_lanes.output_lane_id        = in_lane_id
           AND edr_rpt_tmp_report_lanes.output_direction_id   = in_direction_id;
         SELECT MAX(site_lane_id)
              INTO lane_end
           FROM edr_rpt_tmp_report_lanes
          WHERE edr_rpt_tmp_report_lanes.output_lane_id        = in_lane_id
            AND edr_rpt_tmp_report_lanes.output_direction_id   = in_direction_id;  
         SELECT MIN(range_low)
           INTO row_start
           FROM edr_rpt_by_ranges_output;
         SELECT MAX(range_low)
           INTO row_end
           FROM edr_rpt_by_ranges_output;
               my_each_count_result := edr_rpt_lane_by_class_package.gen_total_lane_count (
                                        in_lane_id,
                                        in_direction_id,
                                        in_interval_start_date_time,
                                        in_interval_end_date_time,
                                        in_row_number,
                                        in_row_number_high,
                                        in_lane_min,
                                        in_lane_max             
        my_count_result := edr_rpt_lane_by_class_package.gen_total_lane_count (
                                        in_lane_id,
                                        in_direction_id,
                                        in_interval_start_date_time,
                                        in_interval_end_date_time,
                                        row_start,
                                        row_end,
                                        in_lane_min,
                                        in_lane_max              
         my_total_count :=  edr_rpt_lane_by_class_package.gen_total_lane_count (
                                        in_lane_id,
                                        in_direction_id,
                                        in_interval_start_date_time,
                                        in_interval_end_date_time,
                                        in_row_number,
                                        in_row_number_high,
                                        lane_start,
                                        lane_end               
             IF (my_each_count_result > 0)   THEN                          
                   my_total := edr_rpt_lane_by_class_package.gen_total_lane_count (
                                        in_lane_id,
                                        in_direction_id,
                                        in_interval_start_date_time,
                                        in_interval_end_date_time,
                                        row_start,
                                        row_end,
                                        lane_start,
                                        lane_end              
                CASE
                WHEN in_row_number_high = row_end THEN                       
                     my_count_pct := ROUND((my_each_count_result / my_count_result ) * 100 );     
                WHEN in_row_number_high < row_end THEN                
                        my_count_pct := ROUND((my_each_count_result / my_total ) * 100 ) ;               
                ELSE
         RAISE_APPLICATION_ERROR(-20101, 'The row number specified is not recognized.');                 
                END CASE;     
             END IF;
             return my_count_pct;
    END gen_total_lane_count_pct;          Edited by: Indhu Ram on Jan 5, 2010 11:43 AM

    Hi,
    I have to find out the % value for each column value( For rx if there is only 2 columns).To calculate the % , each column value should get divided by the total of that column value.
    To calculate the % for the total row , each column total should get divide by the sum of column ( sum of column 1 + sum of column 2)values.
    ROUND((my_each_count_result / my_count_result ) * 100 ) ---- This calculaton gives me the % for the total row.
    ROUND((my_each_count_result / my_total ) * 100 ) ------- This calculation gives the % for the data row.
    The condition that I have tried is, if it reaches end of data row (to achieve that condition I have given this condition in_row_number_high < row_end )
    Now my result returns only values based on this condition -- in_row_number_high < row_end .
    It does't look for the first condition.
    CASE
    WHEN in_row_number_high = row_end THEN
    my_count_pct := ROUND((my_each_count_result / my_count_result ) * 100 );     
    WHEN in_row_number_high < row_end THEN
         my_count_pct := ROUND((my_each_count_result / my_total ) * 100 ) ;               
    ELSE
    RAISE_APPLICATION_ERROR(-20101, 'The row number specified is not recognized.');          
    END CASE;
    Hope , you have some good understanding now. Please help me how could I do this?

  • Pricing Condition type triggering based on other condition type

    Hello sir,
    There are some pricing condition types in our system.
    Based on condition records you can trigger one condition type based on other    condition type.
    For eg: PR00 condition type is there and amount is  suppose 1000rs and other condition type is JBED and we made a condition record and put it some percentage so as soon as we some value in PR00 ,JBED condition type is automatically manipulating the value on the base condition record.
    Now i want other than condition record can we trigger one condition type based on other condition type through defining user routine under requirement.
    Suppose we have condition type ABC and some amount i have given and other condition type DEF , i want that amount of DEF condition type should automatically come from the Condition type and it should manipulate according to my routine .
    eg  Condition type    Amount
           ABC                  1000
           DEF                    40
      The value 40 should come as 4% of 1000.
    I am not maintaing any condition record and i want that this should trigger through some requirement created by me.
    i created my routine no 905 and i putted the code inside it.
      if komtl-kschl = 'DEF'.
      komv-kbetr  =   ( komv-kbetr * 4) / 100.
    endif.
    Now problem is that this code is getting trigger when i m giving value in DEF condition type then it is showing 4 % of it.
    But i want as soon as i give value for the condition type ABC and some value 1000
    then after pressing enter , one condition type DEF should automatically come with value 40 that too in display mode ,not in change mode.
    Please suggestions and solutions regarding this matter , I will be grateful to you.
    Manish

    hi
    In V/06 in the calculation type you can see the entries for "D-gross weight" & "E-net weight"
    For the required condition type select the calculation type as gross weight or net weight. Save it.
    In MM01 - create material master, here in BASIC DATA 1 SCREEN you have fields for gross weight & net weight.
    Maintain the condition record in VK11 for the required condition type.
    You can also maintain the scales as required like u said
    1 to 10 kgs -  100 rupees,
    11 to 25 kgs - 1000 rupees.
    Another way could be
    The BEST practice to do it is, use of VOFM routine for price calculation (VOFM-->Formulae).
    Take help from ABAPer and write a routine such that
    if weight = 1 - 10
    price = 100.
    else if weight > 8.
    price = 1000.
    else
    price = 100.
    end if
    but the maintainnance of routine is big problem as u might be having many records
    Hope this will help you
    Vishal

  • Sorting records dynamically in REF cursor, based upon a dynamic field

    Hi,
    I have a REF CURSOR built by using row type, table type and PIPELINE function. I have opened the ref cursor now. I would like to update a field called 'RANK' based upon 'RATIO' field in the REF CURSOR. i.e order the records in the ref cursor by RATIO field and then update the RANK as 1, 2, 3, 4, ....
    Aim: I want to update a field in the REF CURSOR based upon another numeric field.
    Please help me.
    OPEN sales FOR
    SELECT RANK, ratio
    FROM TABLE (fngetfundholdingsale (in_primarykey, in_flag));
    loop
    fetch sales into sale1;
    exit when sales%notfound;
    --I want to update sale1.rank based upon ratio
    end loop;
    Thanks
    Ashok

    Try to use NDS (Native Dynamic SQL):
    l_order := 'ratio';
    OPEN sales FOR
    'SELECT rank' ||
    '  FROM TABLE (fngetfundholdingsale (:in_primarykey, :in_flag))' ||
    ' ORDER BY ' || l_order
      USING in_primarykey, in_flag;Regards,
    Zlatko

Maybe you are looking for

  • VBS Script to add and remove computers from a group

    Good Morning everyone I need some help, I need to develop a script with excel vb + to do the following:  I select a group of ad through a comboBox and that in another box I specify the computers, just below dde has 2 buttons to add or remove these co

  • Wrong persistent unit

    Dear sdn members, I am using NetBeans 5.5 , database PostgreSQL 8.1, Sun Application Server 9, and hibernate.I copied following jars from Hibernate to lib directory of my application server # From hibernate entitymanager 3.2.0 cr2 * hibernate-entitym

  • Unable to Personalize at SITE level.

    I was customization "Customer" pages in R12. Code is ready, problem is that, When i goto personalize page, I can't personalize at SITE level, i'm getting only for ORGANIZATION level. Screenshot LINK -> http://i.imgur.com/7lPt9yM.png NOTE Same  issue

  • How do I delete the silent lead in to a song on Garageband 10.0.3 without the automation getting out of sync?

    I want to delete the dead bars that lead in to a song I have recorded on Garageband 10.0.3 so I can mix it to MP4.  I tried doing this using Arrangement, simply deleting the bars, but this leaves the automation out of sync.  How should I do this?

  • FlvPlayback Skin displayheadTime/totalTime Text Modification

    Hi, I want to separate the time_txt inside the counter_mc into two objects. One displaying just the displayheadTime and the other the totalTime.  I want to do this on the skin file.  What my problem is I can't seem to find the part where the text is