Count vs sum(case) on dates in select statement
I'm writing a statement to count the number of events occuring within 7 days of creating and also within 31 days of creating. I tried count but the script never completd. I've written this below - does anyone have a better idea on how to access the data? Thanks -
select /*+ INDEX(CW_DOCUMENTS_IDX1) */ b.create_dt,
sum(case when b.create_dt <= a.event_dt - 7 then 1 else 0 end),
sum(case when b.create_dt <= a.event_dt - 31 then 1 else 0 end)
from cw4_audit_index a, cw_documents b
where a.docseq = b.docseq
and a.medrecno = b.medrecno
and a.account = b.account
group by b.create_dt
/
Dianna,
Just in case youâre still checking the thread ⦠another explanation for the ânever completedâ symptom.
Assuming a âcw_documentsâ row is created on âcreate_dtâ and subsequently related âcw4_audit_indexâ event rows are created with a âevent_dtâ timestamp ⦠then <quote>count[ing] the number of events occurring within 7 days of creating and also within 31 days of creating</quote> would be something like:
case when cw4_audit_index.event_dt <= cw_documents.create_dt + 7 then 1 else 0 end
case when cw4_audit_index.event_dt <= cw_documents.create_dt + 31 then 1 else 0 endor to use your own query:
select /*+ INDEX(CW_DOCUMENTS_IDX1) */
b.create_dt
,sum(case when a.event_dt <= b.create_dt + 7 then 1 else 0 end)
,sum(case when a.event_dt <= b.create_dt + 31 then 1 else 0 end)
from cw4_audit_index a
,cw_documents b
where a.docseq = b.docseq
and a.medrecno = b.medrecno
and a.account = b.account
group by b.create_dt
/With your version of the sql ⦠didnât you find cases of rows in your result set having more âwithin 7 daysâ events than âwithin 31 daysâ? ⦠shouldâve been a red flag right there.
In my skimpy desktop, on a table with ~24K documents and ~1.44M events (some 60 events for each document, half of them within 31 days) I got the query in around 10 seconds ⦠tables analyzed and no indexes in site ⦠youâre probably fine here with nice/fat full table scans.
Since an âwithin 7 daysâ event also/always qualifies as an âwithin 31 daysâ one ⦠one could improve the above query by specifying an extra predicate:
select b.create_dt
,sum(case when a.event_dt <= b.create_dt + 7 then 1 else 0 end)
,sum(case when a.event_dt <= b.create_dt + 31 then 1 else 0 end)
from cw4_audit_index a
,cw_documents b
where a.docseq = b.docseq
and a.medrecno = b.medrecno
and a.account = b.account
and a.event_dt <= b.create_dt + 31 --<< extra predicate
group by b.create_dt
/at which moment the second âsumâ in the select list can be replaced with âcount(*)â ⦠the improvement percentage is based on your event distribution (how many events get filtered out up-front) ⦠in my case, 10-25%.
Cheers.
Similar Messages
-
Case or decode in select statement for comparison
Hi,
How can I do a comparison
like
if sal < 50, output 1.1 * comm
if sal > 50 and < = 100 output 1.2 * comm
else output comm
in a single select statement.
I tried using case and decode but I am not sure how to use it in comparison operations.
Please helpuse the 'case' construct:
SELECT
NORMAL_FIELD
, (CASE
WHEN (SAL < 50) THEN 1.1 * COMM
WHEN (SAL > 50) AND (SAL <= 100) THEN 1.2 * COMM
ELSE COMM
END
) AS CALCULATED_COMM
FROM
TB_xxxx
WHERE xxxx
hope this helps -
How to fetch negative sign data using select statement
hi gurus,,
i hv to fetch data which is negative in nature using select statement i m using ppdit table and wrbtr field.(it contains both negative and positive data)....wat sud i add with select statement...plz help me..
thnx in advance
Message was edited by:HI,
I think you can use LT or < 0.0 in the WHERE clause to get all the -ve values. Once you get them treat them as negative.
Regards,
Sesh -
Can i get an exact part of data from select statement
hi...good afternoon...
i want to fetch the records from a table by select statement. but i dont want to fetch the as it is record. i want to fetch a particular part of eacg record in that column.
for example..
table_name=tab1
column_name=col1
the col1 contains datas like *'customer search-cs', 'get customer-gc', 'customer delete-cd'* etc etc..
now while writing the select query, i want to get the descriptive output as get customer, customer search, customer delete....that is i dont want the symbols..
is it possible to get this???
plss suggest...You mean like these possible ways of doing it...
SQL> ed
Wrote file afiedt.buf
1* select substr('customer search-cs',1,length('customer search-cs')-3) from dual
SQL> /
SUBSTR('CUSTOME
customer search
SQL> ed
Wrote file afiedt.buf
1* select regexp_substr('customer search-cs','^[^-]*') from dual
SQL> /
REGEXP_SUBSTR('
customer search
SQL> -
Collumn order changes when i retrive data through select statement.
Hi
i am using the sql developer 2.1.1.64 i have below table with respected collum sequence.
tbl_message( id,
date,
process_name,
stage,
message,
message_type,
parameter)
when i retrive this table using select * from tbl_message; i got the below collumn sequence
date process_name stage id message message_type parameter
13-may-2011 procedure 10 1 info info null
but when i create the table my id collumn is the first collumn?
and when open the table through sql developer id collumn is in the first place. so why id collumn is in 3rd place when i use select statement?
if you need more information lpease let me know.
Thanks
RiteshSQL Developer allows you to change the order of the columns in the Output window, and it will remember it. This is probably why you see the columns in a different order when you execute "SELECT * FROM ..."
The actual order of the columns in the database is what you see when you execute the DESC command.
You also can verify the order of the columns in two other ways:
1) Use SQL*PLus and exeute your "SELECT * " query. SQL*Plus will not re-arrange the columns.
2) Query the data dictionary. Use user_tab_columns (if you are the owner of the table), or use all_tab_columns and add the schema owner to the query otherwise.
SELECT table_name, column_name, column_id
FROM user_tab_columns
WHERE table_name = 'TBL_MESSAGE'; -
How to get the sum in BSEG table using select statement
hai all
i made the internal tale "itab1" .. i want to get the som feild of DMBTR in BSG table my code is here but its not working gave som error massage (Aggregate functions and the addition DISTINCT are not supported in field lists for pooled and cluster tables.) plz tel me how should i do it..... i want to get the som of that feild....
loop at itab1
SELECT sum( DMBTR ) from bseg INTO itab1-DMBTR141_45
where GJAHR = itab1-GJAHR
and BELNR = itab1-BELNR.
endloop.
regard
nawaSELECT BELNR GJAHR SHKZG DMBTR
from bseg
INTO table it_bseg
for all entries in itab1
where GJAHR = itab1-GJAHR
and BELNR = itab1-BELNR.
loop at it_bseg.
IF it_bseg-shkzg = 'H'.
it_bseg-dmbtr = it_bseg-dmbtr * ( -1 ).
ELSE.
it_bseg-dmbtr = it_bseg-dmbtr.
ENDIF.
MODIFY it_bseg.
endloop.
loop at it_bseg.
READ TABLE itab1 with key belnr = it_bseg-belnr
gjahr = it_bseg-gjahr.
if sy-subrc = 0.
collect it_bseg into it_bseg_amount.
endif.
endloop.
U can use the collect statement
Regards
Gopi -
Case insensitive search in select statement
Hi Experts,
I have entries in table as mixed case. For example i am searching on an attribute called description in the table. I want the serch to be case insensitive for that attribute. Because in table it is i.e. JUMBO Pack and in the search attribute it is i.e. Jumbo Pack.
I do not want to translate both to the same case and search. Is there an option?
Best Regards!
SandipHi Sandip,
One more alternative:
If ztext is ur original field which is saving the mixed text.
Append one extra field(ztext_upper) to the table.
Now if " Sap Sdn" is the text we are saving then
While saving the entires to the table,
1. asusual save the value(" Sap Sdn") to teh original field(ztext)
2. translate the value to upper case(SAP SDN) and save this entry to teh newly appended field(ztext_upper)
Now while doing search, translate to upper case and compare with the value in ztext_upper. If it satisfies then for display options select the original value from the field (ztext) which is corresponding to the satisfied ztext_upper field.
Regards,
Swarna Munukoti. -
Change date on select statement
Hi all,
I've field CLOSEDATA datatype DATA format 'dd/mm/yyyy hh:mm'
I extract CLOSEDATA with this query
SELECT CLOSEDATA
FROM JAVADEV
WHERE CLOSEMONTH='2010'but don't want the extracted time hh:mm of CLOSEDATA... I want to change it into 02:00
So the output of my query will be 'dd//mm/yyyy 02:00'
How do I change the previous query??
Thanks in advancetrebbia wrote:
Hi all,
I've field CLOSEDATA datatype DATA format 'dd/mm/yyyy hh:mm'Do you mean "datatype DAT<b>E</b>? DATEs don't have format like that, only strings that represent dates do.
Do you mean "datatype VARCHAR2"? Then just ignore the last 5 characters, and substitute whatever you want instead:
SELECT SUBSTR (CLOSEDATA, 1, 11) || '02:00' AS clesedata
FROM JAVADEV
WHERE CLOSEMONTH = '2010'
If closedata were a DATE, then
{code}
TRUNC (closedata) + (2 / 24)
{code}
would be 02:00 on the same day, regardless of what the original hours and minutes were.
I hope this answers your question.
If not, post a little sample data (CREATE TABLE and INSERT statements, relevant columns only), and also post the results you want from that data.
Explain, using specific examples, how you get those results from that data.
Always say which version of Oracle you're using. -
CREATE OR REPLACE PROCEDURE return data like SELECT statement
"SELECT * FROM SEARCH_KEYWORD" is successfully done and return the data of the tables. Now, I want to run that on server side using PROCEDURE.
I successfully executed the below scripts. Please teach me how to call the sp_test procedure. OR if you have other way or maybe my scripts are wrong.
CREATE OR REPLACE PACKAGE GLOBALPKG
AS
TYPE RCT1 IS REF CURSOR;
TRANCOUNT INTEGER := 0;
IDENTITY INTEGER;
END;
CREATE OR REPLACE PROCEDURE LPG.sp_test
RCT1 IN OUT GLOBALPKG.RCT1
AS
BEGIN
OPEN RCT1 FOR
SELECT *
FROM SEARCH_KEYWORD;
END;
Here is my table definition:
CREATE TABLE LPG.SEARCH_KEYWORD
FRACTION VARCHAR2(50),
KEYWORD VARCHAR2(50),
PURPOSE VARCHAR2(50),
REMARKS VARCHAR2(50),
DATE_INSERTED DATE DEFAULT sysdate
PCTFREE 10
PCTUSED 40
MAXTRANS 255
TABLESPACE SYSTEM
STORAGE(INITIAL 64K MINEXTENTS 1 MAXEXTENTS 2147483645 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
NOCACHE
LOGGING
Eros
JapanWrong forum. You should ask this question in the SQL and PL/SQL forum.
Couple of comments though. Oracle is not SQL-Server. So calling a procedure that returns a ref cursor is different from a T-SQL macro procedure that functions like a view.
Also, there is no need to use the SQL-Server standard (and silly one at that) of prefixing stored procedures using the text "sp_". In fact, the whole concept of Hungarian-like notation is something of the past and has no place in today's paradigm of software engineering.
As for calling a a proc that returns a ref cursor, from SQL*Plus it will look as follows:
SQL> var c refcursor
SQL>
SQL> exec LPG.sp_test( :c )
SQL> print c
Ref cursor needs to be supported by the client language you use to make this call to Oracle. -
How to avoid Huge scan with case condition in the select statement.
Hi ,
I have the below sql and add condition such that c.ROLE = 18 then tibex_fixrestorestateview needs to be queried else it should not query the tibex_fixrestorestateview.
tibex_fixrestorestateview contains 10 to 20 millions records so to avoid scanning when c.ROLE <> 18
SELECT c.connectionid, u.participantid, c.port, u.PASSWORD, cg.gatewayid,
c.ROLE, u.cancelonlogout, NVL (f.tofixsequence, 1) AS tofix,
NVL (f.fromfixsequence, 1) AS fromfix
FROM tibex_connectiongroup cg INNER JOIN tibex_connection c
ON cg.connectiongroupid = c.connectiongroupid
LEFT JOIN tibex_user u ON c.connectionid = u.userid
*LEFT JOIN tibex_fixrestorestateview f*
ON u.useralias = f.useralias AND c.ROLE = 18;Regards
NMHi;
I suggest close your issue here as answered than move your issue Forum Home » Database » SQL and PL/SQL which you can get more quick response
Regard
Helios -
Issue with Past Month data in the Select Statement
Hi,
I written the following query,
SELECT /*+NO_MERGE(A)*/
CASE
WHEN snap_shot_date > a.q3
AND snap_shot_date <= a.q4
THEN q4char
WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
THEN q3char
WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
THEN q2char
WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
THEN q1char
END snap_shot_date,
CASE
WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
THEN 1
WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
THEN 2
WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
THEN 3
WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
THEN 4
END sort_by,
pillar3_exposure_class_code, pd_band_description,
ROUND (SUM (p3.ead_post_sec_post_crm)),
ROUND (SUM (notional_principle)),
DECODE (SUM (notional_principle),
0, 0,
ROUND ( SUM (DECODE (exposure_type,
'UNDRAW', ead_post_sec_post_crm,
0
/ SUM (notional_principle),
4
DECODE (SUM (p3.ead_post_sec_post_crm),
0, 0,
ROUND ( SUM (pd_value * p3.ead_post_sec_post_crm)
/ SUM (p3.ead_post_sec_post_crm),
2
DECODE (SUM (p3.ead_post_sec_post_crm),
0, 0,
ROUND (SUM (rwa) / SUM (p3.ead_post_sec_post_crm), 4)
DECODE (SUM (p3.ead_post_sec_post_crm),
0, 0,
ROUND ( SUM (lgd_rate * p3.ead_post_sec_post_crm)
/ SUM (p3.ead_post_sec_post_crm),
2
TO_CHAR (MAX (a.max_date), 'FMMonth DD, YYYY')
FROM summary.pillar3 p3,
(SELECT DISTINCT (month_end_date) max_date,
LAST_DAY (month_end_date) q4,
TO_CHAR (LAST_DAY (month_end_date),
'MON YYYY'
) q4char,
ADD_MONTHS (LAST_DAY (month_end_date), -3) q3,
TO_CHAR
(ADD_MONTHS (LAST_DAY (month_end_date), -3),
'MON YYYY'
) q3char,
ADD_MONTHS (LAST_DAY (month_end_date), -6) q2,
TO_CHAR
(ADD_MONTHS (LAST_DAY (month_end_date), -6),
'MON YYYY'
) q2char,
ADD_MONTHS (LAST_DAY (month_end_date), -9) q1,
TO_CHAR
(ADD_MONTHS (LAST_DAY (month_end_date), -9),
'MON YYYY'
) q1char,
ADD_MONTHS (LAST_DAY (month_end_date), -12) q0
FROM rcdwstg.stg_bcar_detail) a
WHERE snap_shot_date BETWEEN ADD_MONTHS (a.max_date, -12) AND a.max_date
GROUP BY CASE
WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
THEN q4char
WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
THEN q3char
WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
THEN q2char
WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
THEN q1char
END,
CASE
WHEN snap_shot_date > a.q3 AND snap_shot_date <= a.q4
THEN 1
WHEN snap_shot_date > a.q2 AND snap_shot_date <= a.q3
THEN 2
WHEN snap_shot_date > a.q1 AND snap_shot_date <= a.q2
THEN 3
WHEN snap_shot_date > a.q0 AND snap_shot_date <= a.q1
THEN 4
END,
pillar3_exposure_class_code,
pd_band_description
ORDER BY 2 DESC;I have written the query to get the latest 12 months data from a table and split that into 4 quarter to show in the Cognos Report. But when the table having 13th or the past months data, the select statement is showing Empty values in the first two columns and fetching the 13 month data too.
Can anyone help me in this to avoid the problem.
Thanks
Radha KWHERE snap_shot_date BETWEEN ADD_MONTHS(TRUNC(a.max_date, 'MM'), -11) AND a.max_date
.... -
Regarding Logical database and select statement..
Hi
Experts.
i would like to know the diff b/w logical data base & select statement while using report.
wt is the use of logical databases in R/3. is there any advantage used in the reports.
Thanks & Regards..
Spandana.Dear Spandana,
Go through the below description of LDB. I hope you wil get a fair amount of idea.
SAP comes loaded with all the extras. Among the extras that are most helpful to IT managers are all the access routines needed to pull any business object that managers can think of out of SAP databases. However, SAP has not thought of everything where your particular applications are concerned. SAP organizes its standard database tables to service business units based on conventional business applications. Itu2019s likely your business requires something new, perhaps even something exotic. In that case, you will need to create a new database, using information from different places. Basically, you need a logical database. You need to create a virtual business data object repository consisting of a new kind of record or table that suits your purposes. In addition, the repository should be composed of information that is actually stored in a number of different locations, none of them necessarily logically associated with one another. Letu2019s take a closer look at creating logical databases.
A case for a logical database
Suppose my company manufactures widgets of the most obscure variety, and they are components of other widgets. I sell my widgets as raw material for the more sophisticated widgets built by others, but in some cases I actually partner with other manufacturers in creating yet another class of widget. Now, in my world, I consequently have customers who are also partners. I sell to them and I partner with them in manufacturing and distribution. Also, I need an application that uses both of these dual-use relationships.
Essentially, I have a customer database and a partner database. Neither contains records that are structured to contain the identifying particulars of the other. Thus, I need a hybrid database that gives me tables detailing these hybrid relationships. What can I do? I can go the long way around and write a new database, pulling information from both and creating new objects with a customized program that I write by hand. However, this process is cumbersome and contains maintenance issues. On the other hand, I can use SAPu2019s logical database facility, create my logical database in a couple of minutes, and have no maintenance issues at all.
Logical database structures
There are three defining entities in an SAP logical database. You must be clear on all three in order to create and use one.
u2022 Table structure: Your logical database includes data from specified tables in SAP. There is a hierarchy among these tables defined by their foreign keys (all known to SAP), and you are going to define a customized relationship between select tables. This structure is unique and must be defined and saved.
u2022 Data selection: You may not want or need every item in the referenced tables that contributes to your customized database. There is a selection screen that permits you to pick and choose.
u2022 Database access programming: Once youu2019ve defined your logical database, SAP will generate the access subroutines needed to pull the data in the way you want it pulled.
Creating your own logical database
ABAP/4 (Advanced Business Application Programming language, version 4) is the language created by SAP for implementation and customization of its R/3 system. ABAP/4 comes loaded with many predefined logical databases that can construct and table just about any conventional business objects you might need in any canned SAP application. However, you can also create your own logical databases to construct any custom objects you care to define, as your application requires in ABAP/4. Hereu2019s a step-by-step guide:
1. Call up transaction SLDB (or transaction SE36). The path you want is Tools | ABAP Workbench | Development | Programming Environment | Logical Databases. This screen is called Logical Database Builder.
2. Enter an appropriate name in the logical database name field. You have three options on this screen: Create, Display, and Change. Choose Create.
3. Youu2019ll be prompted for a short text description of your new logical database. Enter one. Youu2019ll then be prompted to specify a development class.
4. Now comes the fun part! You must specify a root node, or a parent table, as the basis of your logical database structure. You can now place subsequent tables under the root table as needed to assemble the data object you want. You can access this tree from this point forward, to add additional tables, by selecting that root node and following the path Edit | Node | Create. Once youu2019ve saved the structure you define in this step, the system will generate the programming necessary to access your logical database. The best part is you donu2019t have to write a single line of code.
Watch out!
The use of very large tables will degrade the performance of a logical database, so be aware of that trade-off. Remember that some tables in SAP are very complex, so they will be problematic in any user-defined logical database.
Declaring a logical database
Hereu2019s another surprising feature of logical databases: You do not assign them in your ABAP/4 Code. Instead, the system requires that you specify logical databases as attributes. So when you are creating a report, have your logical database identifier (the name you gave it) on hand when you are defining its attributes on the Program Attributes screen. The Attributes section of the screen (the lower half) will include a Logical database field, where you can declare your logical database.
Logical databases for increasing efficiency
Why else would you want to create a logical database? Consider that the logical databases already available to you begin with a root node and proceed downward from there. If the data object you wish to construct consists of items that are all below the root node, you can use an existing logical database program to extract the data, then trim away what you donu2019t want using SELECT statementsu2014or you can increase the speed of the logical database program considerably by redefining the logical database for your object and starting with a table down in the chain. Either way, youu2019ll eliminate a great deal of overhead.
Regards
Arindam -
Doubt about Select statement.
Hi folks!!
I have a few doubts about the select statements, it may be a silly things but its useful for me.
what is difference between below statment.
1)SELECT * FROM TABLE.
2)SELECT SINGLE * FROM TABLE
3)SELECT SINGLE FROM TABLE.
Hope i will get answer,thanks in advance.
Regards
Richie..Hi,
try this and if possible use sap help.i mean place the cursor on select and press F1.
Types of select statements:
1. select * from ztxlfa1 into table it.
This is simple select statement to fetch all the data of db table into internal table it.
2. select * from ztxlfa1 into table it where lifnr between 'V2' and 'V5'.
Thisis using where condition between v2 and v5.
4. select * from ztxlfa1 where land1 = 'DE'. "row goes into default table work Area
5. select lifnr land1 from ztxlfa1
into corresponding fields of it "notice 'table' is omitted
where land1 = 'DE'.
append it.
endselect.
Now data will go into work area. and then u will add it to internal table by
append statement.
6. Table 13.2 contains a list of the various forms of select as it is used with internal tables and their relative efficiency. They are in descending order of most-to-least efficient.
Table 13.2 Various Forms of SELECT when Filling an Internal Table
Statement(s) Writes To
select into table it Body
select into corresponding fields of table it Body
select into it Header line
select into corresponding fields of it Header line
7. SELECT VBRK~VBELN
VBRK~VKORG
VBRK~FKDAT
VBRK~NETWR
VBRK~WAERK
TVKOT~VTEXT
T001~BUKRS
T001~BUTXT
INTO CORRESPONDING FIELDS OF TABLE IT_FINAL
FROM VBRK
INNER JOIN TVKOT ON VBRKVKORG = TVKOTVKORG
INNER JOIN T001 ON VBRKBUKRS = T001BUKRS
WHERE VBELN IN DOCNUM AND VBRK~FKSTO = ''
AND VBRK~FKDAT in date.
Select statement using inner joins for vbrk and t001 and tvkot table for this case based on the conditions
8. SELECT T001W~NAME1 INTO TABLE IT1_T001W
FROM T001W INNER JOIN EKPO ON T001WWERKS = EKPOWERKS
WHERE EKPO~EBELN = PURORD.
here selecting a single field into table it1_t001winner join on ekpo.
9. SELECT BUKRS LIFNR EBELN FROM EKKO INTO CORRESPONDING FIELDS OF IT_EKKO WHERE EBELN IN P_O_NO.
ENDSELECT.
SELECT BUTXT FROM T001 INTO IT_T001 FOR ALL ENTRIES IN IT_EKKO WHERE BUKRS = IT_EKKO-BUKRS.
ENDSELECT.
APPEND IT_T001.
here I am using for all entries statement with select statement. Both joins and for all entries used to fetch the data on condition but for all entries is the best one.
10. SELECT AVBELN BVTEXT AFKDAT CBUTXT ANETWR AWAERK INTO TABLE ITAB
FROM VBRK AS A
INNER JOIN TVKOT AS B ON
AVKORG EQ BVKORG
INNER JOIN T001 AS C ON
ABUKRS EQ CBUKRS
WHERE AVBELN IN BDOCU AND AFKSTO EQ ' ' AND B~SPRAS EQ
SY-LANGU
AND AFKDAT IN BDATE AND AVBELN EQ ANY ( SELECT VBELN FROM
VBRP WHERE VBRP~MATNR EQ ITEMS ).
Here we are using sub query in inner join specified in brackets.
Thanks,
chandu. -
Short dump during select statement
hi,
i have to display 1 alv list output using REUSE_ALV_HIERSEQ_LIST_DISPLAY function module...so i have populated the data using select statement
select EXIDV
brgew meabm
vegr1 erlkz vhilm erdat aenam
ernam from vekp
into corresponding fields of table gt_master
up to gs_test-select_amount rows.
so the data is also getting populated to gt_master table before the function module...but after executing the function module..it is giving short dump...due to some standard program....any ideahi,
my coding is
Report : ZBCALV *
Author : *
SAP-User : *
Requester : *
Date : *
Specification: *
Description : *
Changes : *
Change No : *
Author : *
SAP-User : *
Date : *
Reason / Desc: *
REPORT ZBCALV.
**& Report BCALV_TEST_HIERSEQ_LIST_EVENTS *
*report bcalv_test_hierseq_list_events.
types: g_ty_t_exidv type standard table of vekp,
g_ty_t_brgew type standard table of vekp,
g_ty_t_vegr1 type standard table of vekp,
g_ty_t_vekp type standard table of vekp,
g_ty_t_curr type standard table of alv_cur,
g_ty_s_vekp type alv_t_t2,
g_ty_s_exidv type alv_tab,
g_ty_s_brgew type alv_tab,
g_ty_s_vegr1 type alv_chck,
g_ty_s_vekp type vekp,
g_ty_s_curr type alv_cur.
constants:
*con_vekp type lvc_fname value 'ALV_T_T2',
con_scarr type lvc_fname value 'ALV_TAB', "#EC *
con_spfli type lvc_fname value 'ALV_CHCK', "#EC *
con_vekp type lvc_fname value 'VEKP',
con_scurx type lvc_fname value 'ALV_CUR'. "#EC *
DATA *
tables: sscrfields. " for processing the FCODEs in Selektion screens
type-pools: slis, kkblo.
class lcl_events_d1001 definition deferred.
types: begin of g_ty_s_test,
select_amount type i,
selected_recs_m type i,
selected_recs_s type i,
no_info_popup type char1,
info_popup_once type char1,
events type lvc_fname occurs 0,
events_exit type slis_t_event_exit,
events_info_popup type lvc_fname occurs 0,
list_append type char1,
list_amount type i,
list_append_status type i,
layo_expand_field type char1,
layo_expand_all type char1,
vari_default type char1,
vari_save type char1,
bypassing_buffer type char1,
buffer_active type char1,
end of g_ty_s_test,
begin of g_ty_s_evt_exit.
include type slis_event_exit.
types: text type string,
end of g_ty_s_evt_exit,
g_ty_t_evt_exit type standard table of g_ty_s_evt_exit.
constants: con_true type char1 value 'X',
con_ok type sy-ucomm value 'OK',
con_exit type sy-ucomm value 'EXIT',
con_canc type sy-ucomm value 'CANC',
con_back type sy-ucomm value 'BACK',
con_event_01 type lvc_fname value 'PF_STATUS_SET',
con_event_02 type lvc_fname value 'USER_COMMAND',
con_event_03 type lvc_fname value 'CALLER_EXIT',
con_event_04 type lvc_fname value 'LIST_MODIFY',
con_event_05 type lvc_fname value 'BEFORE_LINE_OUTPUT',
con_event_06 type lvc_fname value 'AFTER_LINE_OUTPUT',
con_event_07 type lvc_fname value 'SUBTOTAL_TEXT',
con_event_08 type lvc_fname value 'REPREP_MODIFY',
con_event_09 type lvc_fname value 'TOP_OF_PAGE',
con_event_10 type lvc_fname value 'END_OF_PAGE',
con_event_11 type lvc_fname value 'TOP_OF_LIST',
con_event_12 type lvc_fname value 'END_OF_LIST',
con_event_13 type lvc_fname value 'TOP_OF_COVERPAGE',
con_event_14 type lvc_fname value 'END_OF_COVERPAGE',
con_event_15 type lvc_fname value 'TOP_OF_FOREIGN_PAGE',
con_event_16 type lvc_fname value 'END_OF_FOREIGN_PAGE',
con_event_17 type lvc_fname value 'GROUPLEVEL_CHANGE',
con_event_18 type lvc_fname value 'ITEM_DATA_EXPAND'.
data: gs_test type g_ty_s_test.
data: g_okcode type sy-ucomm.
data: g_repid type sy-repid.
data: gt_evt_exit type g_ty_t_evt_exit.
data: gr_container_d1001 type ref to cl_gui_custom_container,
gr_grid_d1001 type ref to cl_gui_alv_grid,
gr_events_d1001 type ref to lcl_events_d1001.
data: g_start_listinfo type slis_lineinfo.
*addition for extra
DATA: fieldcatalog TYPE slis_t_fieldcat_alv with header line.
types : BEGIN OF gt_output ,
EXIDV TYPE VEKP-EXIDV,
VGBEL TYPE LIPS-VGBEL,
BRGEW TYPE VEKP-BRGEW,
VEGR1 TYPE VEKP-VEGR1,
MEABM TYPE VEKP-MEABM,
ERLKZ TYPE VEKP-ERLKZ,
VSTAT TYPE NAST-VSTAT,
VHILM TYPE VEKP-VHILM,
ERDAT TYPE VEKP-ERDAT,
AENAM TYPE VEKP-AENAM,
VBELN TYPE VBELN_GEN,
ERNAM TYPE VEKP-ERNAM,
END OF gt_output.
data: ls_output type gt_output,
lt_output type gt_output occurs 0 WITH HEADER LINE .
types : BEGIN OF gt_item_output ,
EXIDV TYPE VEKP-EXIDV,
BRGEW TYPE VEKP-BRGEW,
vEGR1 TYPE VEKP-VEGR1,
TARAG TYPE VEKP-TARAG,
NTGEW TYPE VEKP-NTGEW,
MEABM TYPE VEKP-MEABM,
BREIT TYPE VEKP-BREIT,
HOEHE TYPE VEKP-HOEHE,
ANW_STATUS TYPE VEKP-ANW_STATUS,
MATNR TYPE VEPO-MATNR,
VEGR2 TYPE VEKP-VEGR2,
VSTEL TYPE VEKP-VSTEL,
WERKS TYPE VEKP-WERKS,
END OF gt_item_output.
data: ls_ITEM_output type gt_ITEM_output,
lt_ITEM_output type gt_ITEM_output occurs 0 with header line.
types: begin of g_ty_s_master.
include type gt_output.
types: box type char1,
lights type char1,
checkbox type char1,
expand type char1,
help type i,
end of g_ty_s_master,
g_ty_t_master type standard table of g_ty_s_master,
begin of g_ty_s_slave.
include type gt_item_output.
types: box type char1,
lights type char1,
checkbox type char1,
expand type char1,
help type i,
end of g_ty_s_slave,
g_ty_t_slave type standard table of g_ty_s_slave.
data: gt_master type g_ty_t_master with header line,
gt_slave type g_ty_t_slave with header line,
gs_master type g_ty_s_master.
CLASS lcl_events_d1001 DEFINITION
class lcl_events_d1001 definition.
public section.
methods:
data_changed for event data_changed
of cl_gui_alv_grid
importing er_data_changed
e_onf4
e_onf4_before
e_onf4_after,
data_changed_finished
for event data_changed_finished
of cl_gui_alv_grid.
endclass. "lcl_events_d1001 DEFINITION
CLASS lcl_events_d1001 IMPLEMENTATION
class lcl_events_d1001 implementation.
method data_changed.
endmethod. "data_changed
method data_changed_finished.
endmethod. "data_changed_finished
endclass. "lcl_events_d1001 IMPLEMENTATION
SELECTION-SCREEN *
selection-screen begin of block gen with frame.
parameters:
p_amount type i default 30.
selection-screen end of block gen.
at selection-screen.
AT SELECTION-SCREEN *
case sscrfields-ucomm.
when 'PB01'.
call screen 1001 starting at 1 1 ending at 80 20.
endcase.
START-OF-SELECTION *
start-of-selection.
g_repid = sy-repid.
gs_test-select_amount = p_amount.
END-OF-SELECTION *
end-of-selection.
perform f01_call_list.
*& Form f01_call_list
text
form f01_call_list.
data: l_callback_program type sy-cprog, "#EC NEEDED
ls_layo type slis_layout_alv,
lt_fcat type slis_t_fieldcat_alv,
ls_keyinfo type slis_keyinfo_alv.
data: ls_master type g_ty_s_master,
ls_slave type g_ty_s_slave.
l_callback_program = sy-repid.
perform f01_alv_get_outtab.
perform f01_alv_set_layout changing ls_layo.
perform f01_alv_set_fcat changing lt_fcat.
perform f01_alv_set_keyinfo changing ls_keyinfo.
if gs_test-list_append_status ne 0.
ls_layo-list_append = gs_test-list_append.
endif.
call function 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
exporting
i_callback_program = g_repid
is_layout = ls_layo
it_fieldcat = lt_fcat
i_tabname_header = 'GT_MASTER'
i_tabname_item = 'GT_SLAVE'
is_keyinfo = ls_keyinfo
tables
t_outtab_header = gt_master
t_outtab_item = gt_slave
exceptions
program_error = 1
others = 2.
if sy-subrc <> 0.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " f01_call_list
FORM f01_alv_set_fcat
form f01_alv_set_fcat changing ct_fcat type slis_t_fieldcat_alv.
data: lt_fcat_master type slis_t_fieldcat_alv,
lt_fcat_slave type slis_t_fieldcat_alv.
clear ct_fcat[].
perform f01_alv_set_fcat_master changing lt_fcat_master.
perform f01_alv_set_fcat_slave changing lt_fcat_slave.
append lines of lt_fcat_master to ct_fcat.
append lines of lt_fcat_slave to ct_fcat.
endform. " F01_ALV_SET_FCAT
*& Form f01_alv_set_fcat_master
text
form f01_alv_set_fcat_master changing ct_fcat type slis_t_fieldcat_alv.
data: ls_fcat type slis_fieldcat_alv,
l_char(3) type c.
get fieldcatalog
fieldcatalog-fieldname = 'EXIDV'. "Field name in itab
fieldcatalog-seltext_l = 'HU-NR'. "Column text
FIELDCATALOG-KEY = 'X'.
FIELDCATALOG-TECH = 'X'.
fieldcatalog-col_pos = 1. "Column position
fieldcatalog-ref_tabname = 'VEKP'.
fieldcatalog-outputlen = 05. "Column width
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VGBEL'.
fieldcatalog-seltext_L = 'SALES ORDER'.
fieldcatalog-outputlen = 15.
fieldcatalog-ref_tabname = 'LIPS'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BRGEW'.
fieldcatalog-seltext_l = 'WEIGHT'.
FIELDCATALOG-KEY = 'X'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 3.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MEABM'.
fieldcatalog-seltext_l = 'DIMENSION'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 4.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VEGR1'.
fieldcatalog-seltext_l = 'IPPC NR'.
fieldcatalog-outputlen = 15.
FIELDCATALOG-KEY = 'X'.
fieldcatalog-col_pos = 5.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ERLKZ'.
fieldcatalog-seltext_l = 'STATUS'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 6.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VSTAT'.
fieldcatalog-seltext_l = 'PRINT STATUS'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 7.
fieldcatalog-ref_tabname = 'VSTAT'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VHILM'.
fieldcatalog-seltext_l = 'PACKING MATERIAL'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 8.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ERDAT'.
fieldcatalog-seltext_l = 'CREATED FROM'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 9.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'AENAM'.
fieldcatalog-seltext_l = 'LAST CHANGE'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 10.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VBELN'.
fieldcatalog-seltext_l = 'DELIVERY'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 11.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'ERNAM'.
fieldcatalog-seltext_l = 'CREATED BY'.
fieldcatalog-outputlen = 12.
fieldcatalog-col_pos = 8.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
ls_fcat-tabname = 'GT_MASTER'.
modify ct_fcat from ls_fcat transporting tabname
where tabname ne ls_fcat-tabname.
loop at ct_fcat into ls_fcat.
if ls_fcat-fieldname eq 'BRGEW'.
or ls_fcat-fieldname eq ''.
*§1.Set status of columns PLANETYPE and SEATSOCC to editable.
ls_fcat-edit = 'X'.
modify ct_fcat from ls_fcat.
endif.
endloop.
endform. " f01_alv_set_fcat_master
*& Form f01_alv_set_fcat_slave
text
form f01_alv_set_fcat_slave changing ct_fcat type slis_t_fieldcat_alv.
data: ls_fcat type slis_fieldcat_alv,
l_char(3) type c.
fieldcatalog-fieldname = 'EXIDV'. "Field name in itab
fieldcatalog-seltext_l = 'HU-NR'. "Column text
FIELDCATALOG-KEY = 'X'.
FIELDCATALOG-TECH = 'X'.
fieldcatalog-col_pos = 1. "Column position
fieldcatalog-ref_tabname = 'VEKP'.
fieldcatalog-outputlen = 05. "Column width
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'TARAG'. "Field name in itab
fieldcatalog-seltext_l = 'HU-NR'. "Column text
fieldcatalog-col_pos = 1. "Column position
fieldcatalog-ref_tabname = 'VEKP'.
fieldcatalog-outputlen = 05. "Column width
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'NTGEW'.
fieldcatalog-seltext_L = 'WEIGHT HU'.
fieldcatalog-outputlen = 15.
fieldcatalog-ref_tabname = 'VEKP'.
fieldcatalog-col_pos = 2.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BRGEW'.
fieldcatalog-seltext_l = 'WEIGHT'.
FIELDCATALOG-KEY = 'X'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 3.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'LAENG'.
fieldcatalog-seltext_l = 'LENGTH'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 4.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'BREIT'.
fieldcatalog-seltext_l = 'WIDTH'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 5.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'HOEHE'.
fieldcatalog-seltext_l = 'HEIGHT'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 6.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VEGR1'.
fieldcatalog-seltext_l = 'HU GR1'.
FIELDCATALOG-KEY = 'X'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 7.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VEGR2'.
fieldcatalog-seltext_l = 'HU GR2'.
FIELDCATALOG-KEY = 'X'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 8.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_l = 'MAT NO'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 9.
fieldcatalog-ref_tabname = 'VEPO'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'VSTEL'.
fieldcatalog-seltext_l = 'SHIPPING'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 10.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
fieldcatalog-fieldname = 'WERKS'.
fieldcatalog-seltext_l = 'PLANT'.
fieldcatalog-outputlen = 15.
fieldcatalog-col_pos = 11.
fieldcatalog-ref_tabname = 'VEKP'.
APPEND fieldcatalog TO ct_fcat.
CLEAR fieldcatalog.
ls_fcat-tabname = 'GT_SLAVE'.
modify ct_fcat from ls_fcat transporting tabname
where tabname ne ls_fcat-tabname.
endform. " f01_alv_set_fcat_slave
FORM f01_alv_set_layout
form f01_alv_set_layout changing cs_layout type slis_layout_alv.
*... Display options
cs_layout-colwidth_optimize = con_true.
cs_layout-no_colhead = space.
cs_layout-no_hotspot = space.
cs_layout-zebra = space.
cs_layout-no_vline = space.
cs_layout-cell_merge = space.
cs_layout-no_min_linesize = space.
cs_layout-min_linesize = space.
cs_layout-max_linesize = space.
cs_layout-window_titlebar = space.
cs_layout-no_uline_hs = space.
cs_layout-no_sumchoice = space.
cs_layout-no_totalline = space.
cs_layout-totals_before_items = space.
cs_layout-totals_only = space.
cs_layout-totals_text = space.
cs_layout-no_subchoice = space.
cs_layout-no_subtotals = space.
cs_layout-subtotals_text = space.
cs_layout-numc_sum = space.
cs_layout-no_unit_splitting = space.
*... Interaction
cs_layout-box_fieldname = 'BOX'.
cs_layout-box_tabname = space.
cs_layout-box_rollname = space.
if gs_test-layo_expand_field eq con_true.
cs_layout-expand_fieldname = 'EXPAND'.
endif.
cs_layout-hotspot_fieldname = space.
cs_layout-f2code = space.
cs_layout-key_hotspot = space.
cs_layout-flexible_key = space.
cs_layout-reprep = space.
cs_layout-group_buttons = space.
cs_layout-no_keyfix = space.
cs_layout-get_selinfos = con_true.
cs_layout-group_change_edit = con_true.
cs_layout-no_scrolling = space.
cs_layout-expand_all = gs_test-layo_expand_all.
*... Detailed screen
cs_layout-detail_popup = space.
cs_layout-detail_initial_lines = space.
cs_layout-detail_titlebar = space.
*... PF-status
cs_layout-def_status = space.
*... Display variants
cs_layout-header_text = space.
cs_layout-item_text = space.
cs_layout-default_item = space.
*... colour
cs_layout-info_fieldname = space.
cs_layout-coltab_fieldname = space.
*... others
cs_layout-list_append = space.
endform. " F01_ALV_SET_LAYOUT
*& Form f01_alv_set_keyinfo
text
form f01_alv_set_keyinfo changing cs_keyinfo type slis_keyinfo_alv.
cs_keyinfo-header01 = 'EXIDV'.
cs_keyinfo-item01 = 'EXIDV'.
cs_keyinfo-header02 = 'BRGEW'."'CARRID'.
cs_keyinfo-item02 = 'BRGEW'."."'CARRID'.
cs_keyinfo-header03 = 'VEGR1'."'CONNID'.
cs_keyinfo-item03 = 'VEGR1'."'CONNID'.
cs_keyinfo-header04 = space.
cs_keyinfo-item04 = 'VEGR2'."'FLDATE'.
cs_keyinfo-header05 = space.
cs_keyinfo-item05 = space.
endform. " f01_alv_set_keyinfo
FORM f01_alv_event_pf_status_set
form f01_alv_event_pf_status_set using rt_extab type slis_t_extab.
"#EC *
data: l_event type lvc_fname. "#EC NEEDED
if gs_test-info_popup_once eq con_true.
read table gs_test-events_info_popup into l_event
with key table_line = 'PF_STATUS_SET'.
if sy-subrc ne 0.
insert 'PF_STATUS_SET' into gs_test-events_info_popup index 1.
message i000(0k) with text-t01.
endif.
elseif gs_test-no_info_popup eq space.
message i000(0k) with text-t01.
endif.
set pf-status 'STANDARD' excluding rt_extab.
set titlebar 'STANDARD'.
endform. " F01_ALV_EVENT_PF_STATUS_SET
*& Form F01_ALV_EVENT_BEFORE_LINE_OUTP
text
form f01_alv_event_before_line_outp
using rs_lineinfo type slis_lineinfo. "#EC *
data: l_event type lvc_fname. "#EC NEEDED
if gs_test-info_popup_once eq con_true.
read table gs_test-events_info_popup into l_event
with key table_line = 'BEFORE_LINE_OUTPUT'.
if sy-subrc ne 0.
insert 'BEFORE_LINE_OUTPUT' into gs_test-events_info_popup
index 1.
message i000(0k) with text-t05.
endif.
elseif gs_test-no_info_popup eq space.
message i000(0k) with text-t05.
endif.
format color off
intensified off
inverse off
hotspot off
input off.
if rs_lineinfo-tabname eq 'GT_MASTER'.
if
gs_master-exidv ne gt_master-exidv or
gs_master-brgew ne gt_master-brgew.
write: / text-t05.
write: /
gt_master-exidv,
gt_master-brgew.
gs_master = gt_master.
endif.
if gs_test-selected_recs_m eq rs_lineinfo-tabindex.
clear gs_master.
endif.
endif.
endform. " F01_ALV_EVENT_BEFORE_LINE_OUTP
*& Form f01_alv_get_outtab
text
form f01_alv_get_outtab .
field-symbols: .
select
exidv BRGEW VEGR1
TARAG NTgew meabm BREIT HOEHE VEGR2 VSTEL weRKS
from
(con_vekp) into corresponding fields of table
lt_slave up to gs_test-select_amount rows
where
exidv eq <ls_master>-exidv and
brgew eq -vegr1.
append lines of lt_slave to gt_slave.
endloop.
sort gt_slave by exidv brgew vegr1.
endif.
describe table gt_master lines gs_test-selected_recs_m.
describe table gt_slave lines gs_test-selected_recs_s.
clear gt_master.
clear gt_slave.
endform. " f01_alv_get_outtab
*& Module d1001_pbo OUTPUT
text
module d1001_pbo output.
perform d1001_pbo.
endmodule. " d1001_pbo OUTPUT
*& Module d1001_pai INPUT
text
module d1001_pai input.
perform d1001_pai.
endmodule. " d1001_pai INPUT -
Tuning Select Statement . field sequence and where clause
Hi All
Are there any general guidelines how to write select < field sequence >where clause < field sequence ? Is that shuld be in order of the field sequence in tables?
And how to use this when we have a view or a inner - join . Is that separate from normal select statement that is using FOR ALL ENTRIES.
Please let me know any general guidelines available on this,
AmolHello Amol,
I have another hint:
The statement FOR ALL ENTRIES will package the select statements for every five entries in the internal table. So in comparison to the following code sequence...
LOOP AT itab.
SELECT * FROM table WHERE key = itab-key.
ENDLOOP
the number of select statements is reduced to 20% with
SELECT * FROM table INTO TABLE ...
FOR ALL ENTRIES IN itab
WHERE key = itab-key
If I'm expecting a <i>huge</i> amount of data a go a step further and create my own packages by building a range table with around 100-500 entries and execute a select there...
LOOP AT itab.
IF counter < 500.
APPEND itab-key TO range-tab. " just code example
ENDIF.
IF count >= 500.
SELECT * FROM table APPENDING TABLE ...
WHERE key IN range_tab
ENDIF.
" adjust and calculate counter
ENDLOOP.
* Don't forget last select statement after loop
Best wishes,
Florin
Maybe you are looking for
-
SOAP receiver starting the integration scenario
Hello experts, I am searching for a way to start an integration scenario with a SOAP receiver in the same way it is possible with JDBC sender (with a pool interval). The scenario is: I need to execute a webservice, getting information from it, and se
-
Bus Rules won't migrate - 11.1.1.3
Hi, We have 4 applications. We use LCM and migrate all the artifacts from Dev to Test. For all applications, everything comes over. Except in one application the Bus Rules do not migrate. The LCM process complets with 'Successful' too, thus there is
-
Weird noise, cannot explain?? Help!!
Hey there, I've tried quite a couple troubleshooting tips, but to no avail. I even did the entire page of requirements for Pro Tools in the "Help us Help you" page so it runs properly with my system which I must say runs way better, but did not fix m
-
I have created a podcast with Garageband and published it to IWeb. My subscribe button will not work. Has anyone had the same problem? I just updated to I life 08 a couple of months ago.
-
IR Report to update filtered records that are checked - How To
Hi, (APEX 4.0 on 10g) Simply stated, I have a IR Report with the followng select APEX_ITEM.CHECKBOX(1,empid,DECODE(selected_flag,'Y','CHECKED','') AS SELECTED, ename, job, selected_flag FROM emp ORDER BY 1 The Interactive Report returns a 1000 record