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.....VMHello 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
ENDPlease 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
RajatHi 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.Vhi 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,
sridharHi 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 -
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 PrasadHello 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 AMHi,
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.
Manishhi
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
AshokTry 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
-
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
-
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