Group by and internal table
Hi everyone,
Please help me. Is it possible to select data from database table into an internal table with group by?
For example:
select carrid connid SUM(seatsocc)
from sflight
into(internal-table-carrid, internal-table-connid, sum)
group by carrid connid
where fldate between ***
endselect
thank you in advance!
Linda
yes,
select carrid connid SUM( seatsocc )
from sflight
into (sflight-carrid, sflight-connid, sflight-seatsocc)
where fldate = sy-datum group by carrid connid
endselect.
The problems with yours were:
. no space after SUM(
. group by in wrong spot (before where)
Here's the into table version:
data ts type table of sflight with header line.
select carrid connid SUM( seatsocc ) as seatsocc
from sflight
into corresponding fields of table ts
where fldate = sy-datum group by carrid connid
This is not the most efficient way though. It is probably better to select into a table and sort and aggregate into another table in abap.
Similar Messages
-
Difference between the Field Group and Internal Table.
Hi all,
Can anybody tell me the difference between the Field group and Internal table and when they will used?
Thanks,
Sriram.Hi
Internal Tables: They are used to store record type data in tabular form temporarily in ABAP programming. Or we can say, it stores multiple lines of records for temporary use in ABAP programming.
A field group is a user-defined grouping of characteristics and basic key figures from the EC-EIS or EC-BP field catalog.
Use
The field catalog contains the fields that are used in the aspects. As the number of fields grows, the field catalog becomes very large and unclear. To simplify maintenance of the aspects, you can group fields in a field group. You can group the fields as you wish, for example, by subject area or responsibility area. A field may be included in several field groups.
When maintaining the data structure of an aspect, you can select the field group that contains the relevant characteristics and basic key figures. This way you limit the number of fields offered.
Regards
Ashish -
Passing SELECT-OPTIONS and Internal Tables to SUBROUTINES
Hi Guys
In the code below my colleague has created her own table types in order to pass a select option and internal tables to her subroutine. Is there an easier way of making them known to the subroutine.
data : v_vbeln type vbeln_vf,
it_bdoc type table of vbrp,
it_t006 type table of t006a,
wa_bdoc type vbrp,
wa_t006 type t006a,
it_bdoc2 type table of zsswathi_st_vbeln,
wa_bdoc2 type zsswathi_st_vbeln
select-options s_vbeln for v_vbeln matchcode object zswathi_vbeln obligatory.
start-of-selection.
perform bdoc using s_vbeln[]
changing it_bdoc
it_bdoc2
it_t006.
loop at it_bdoc2 into wa_bdoc2.
form bdoc using f_s_vbeln type ZSWATHI_ST_SELECT_OPTION_TA_TY " all these are table types. for select options, a structure is created and then a table type for it is created.
changing f_it_bdoc type zswathi_vbrp_ty_ta
f_it_bdoc2 type zswathi_vbeln_ty_ta
f_it_t006 type ZSWATHI_T006_TA_TY.
select * from vbrp into table f_it_bdoc where vbeln in f_s_vbeln.
if f_it_bdoc is not initial.
select vbeln sum( netwr ) prsdt from vbrp into table f_it_bdoc2 where vbeln in f_s_vbeln group by vbeln prsdt.
sort f_it_bdoc2 by vbeln.
"select * from t006a into table it_t006 for all entries in it_bdoc where msehi = it_bdoc-vrkme.
select * from t006a into table f_it_t006 for all entries in f_it_bdoc where msehi = f_it_bdoc-vrkme.
endif.
endform.Hi Brett,
1. you can use a select-options-range in a FORM subroutine also without passing it as a parameter because parameters and select-option range tables are global fields in their program.
2. If you need a parameter, declare it as type table or type standard table or type any table. You do not need any special table type.
Regards
Clemens -
Difference between work area and internal tables.
Hi I wanna know the difference between work area and internal tables.
what happend if i give with out header line in internal table.
also how to assosiate work area to internal table in that scenario.Hi Balaji..
The internal table is an ABAP runtime object which has two parts the Body and the header.
Whereas a work area cannot have a body.. It is mere a field or group of fields which can hold values at runtime..
In the SAP higher versions mySAP ERP, the use of tables with header line is made obsolete.. But there is absolutely no problem with the same..
Just think that when you define an internal table with occurs or with header line statement, the system automatically creates a workarea with this table, using which you can access the contents in the bosy of tyhe table.. You can read a record from the table body to this header or add a record in the header to the internal table body..
When you work with a table ITAB without a header line, you can not use statements like READ TABLE, APPEND, INSERT etc without giving an explicit work area..
Suppose i have an internal table like:
DATA : itab TYPE STANDARD TABLE OF t001.
This table will not have a header with it.
If you will use APPEND itab. The compilor will give error.
Here i will create a work area with same structure of the table.
DATA : e_wa TYPE t001.
Now i will write:
APPEND e_wa TO itab.
READ TABLE itab INTO e_wa WITH KEY xxxxxx
LOOP AT itab INTO e_wa... etc..
In a better approach we use Field symbols with such tables, instead of structures
FIELD-SYMBOLS: <fs_itab> TYPE t001.
So,
LOOP AT itab ASSIGNING <fs_itab>
READ TABLE itab ASSIGNING <fs_itab> etc.. However we can not use field symbols in few cases..
I hope this will help you..
Thanks and Best Regards,
Vikas Bittera.
**Points for usefull answers** -
SAP QUERY LOOPS AND INTERNAL TABLE
Hi All, I have a query which i have made. It runs from Table EKPO which has PO details and what I want to do is now via ABAP Code pull through the total of goods receipt for the PO and Line Item into a field. Sounds Easy enough..Problem now,
The table which contains the GR data is EKBE which agains a PO and Line Item can have many 101 movements and 102 movements so what I want is an ABAP Statent to basically sum up the total of 101 for the PO & LINE ITEMS and then minus this from the total of 102 for the PO & LINE ITEMS and post the result in to this new field I have created.
I am pretty decent with ABAP Code in Querys I.e Select statements etc but from what I can see i need to create an internal table and do a loop and collect statement but I keep on failing due to not enough knowledge. Please can some one help me with this and provide me with the code and explanation as i would like to understand,
POINTS WILL BE REWARDED
Thanks
Kind Regards
Adeel SarwarHi,
This is the full code i have entered but its not working. Any help would be appreciated. If you could rectify the code and internal tables that would be great.
Thanks
TABLES: EKBE.
DATA: PurO LIKE EKPO-EBELN,
POLI LIKE EKPO-EBELP.
*New Table and Vars defined
DATA: BEGIN OF IT_EKBE,
IT_EKBE LIKE EKBE,
END OF IT_EKBE.
DATA: BEGIN OF IT_SUM OCCURS 0,
EBELN TYPE EBELN,
EBELP TYPE EBELP,
DMBTR TYPE DMBTR,
MENGE TYPE MENGE,
END OF IT_SUM.
CLEAR: QTYD.
MOVE: EKPO-EBELN TO PurO,
EKPO-EBELP TO POLI.
SELECT * FROM EKBE INTO IT_EKBE
WHERE EBELN = PurO
AND EBELP = POLI
AND BEWTP = 'E'
LOOP AT IT_EKBE.
MOVE CORRESPOING IT_EKBE TO IT_SUM.
IF IT_EKBE-BWART = '102'.
IT_SUM-DMBTR = IT_SUM-DMBTR * -1.
IT_SUM-MENGE = IT_SUM-MENGE * -1.
ENIDF.
COLLECT IT_SUM.
CLEAR IT_SUM.
ENDLOOP.
ENDSELECT.
If sy-subrc = 0.
QTYD = IT_SUM.
ELSE.
QTYD = 0.
ENDIF. -
Export - Import In ABAP ( for variables and internal table)
how can we pass value for the variable and internal table using Export and Import?
data: var type sy-uzeit.
var = sy-uzeit.
EXPORT var TO MEMORY ID 'TIME'.
data: var type sy-uzeit.
IMPORT var FROM MEMORY ID 'TIME'.
write:/ var,sy-subrc,sy-uzeit.
i found var value 0 while importing.
what is the right syntax for passing value of variable and internaltable.
regards,
dushyant.Hi,
There are two possible solutions.
Solution1:
Program1.Should be run before atleast once so that TIME should be filled.
data: var type sy-uzeit.
var = sy-uzeit.
EXPORT var TO MEMORY ID 'TIME'.
Program2.IF the TIME is filled,then only it will produce the result.
data: var type sy-uzeit.
clear var.
IMPORT var FROM MEMORY ID 'TIME'.
write:/ var, sy-subrc, sy-uzeit.
Solution2:
Single program:
data: var type sy-uzeit.
var = sy-uzeit.
EXPORT var TO MEMORY ID 'TIME'.
clear var.
IMPORT var FROM MEMORY ID 'TIME'.
write:/ var, sy-subrc, sy-uzeit.
Kindly reward points by clikcing the star on the left of reply,if it helps. -
DIFF: Field string ,Structure and Internal table declaration
Hai,
what is the diference between Field string ,Structure in ABAP program and Internal table declaration and how it will work ?
Thank you
ASHOK KUMAR.hi,
Look this u will get a good idea.
*& Report ZTYPES *
REPORT ZTYPES .
* Table declaration (old method)
DATA: BEGIN OF tab_ekpo OCCURS 0, "itab with header line
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
END OF tab_ekpo.
*Table declaration (new method) "USE THIS WAY!!!
TYPES: BEGIN OF t_ekpo,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
END OF t_ekpo.
DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0, "itab
wa_ekpo TYPE t_ekpo. "work area (header line)
* Build internal table and work area from existing internal table
DATA: it_datatab LIKE tab_ekpo OCCURS 0, "old method
wa_datatab LIKE LINE OF tab_ekpo.
* Build internal table and work area from existing internal table,
* adding additional fields
TYPES: BEGIN OF t_repdata.
INCLUDE STRUCTURE tab_ekpo. "could include EKKO table itself!!
TYPES: bukrs TYPE ekpo-werks,
bstyp TYPE ekpo-bukrs.
TYPES: END OF t_repdata.
DATA: it_repdata TYPE STANDARD TABLE OF t_repdata INITIAL SIZE 0, "itab
wa_repdata TYPE t_repdata. "work area (header line)
Regards
Reshma -
Difference between line type and internal table?
Hi..
I wanted to know, what is the difference between Line type and Internal Table?Hi,
Before the 4.7 release in SAP if we want to define an internal table we have to write the defination using the occurs statement and we need to define all the fields using INCLUDE STRUCTURE or indidually all the fields ine by one.
From 4.7 release of R/3 SAP introduced the Line type concept and it's part of the ABAP OOPS concept. for internal table defination we don't need to use the occur statements. Instead INCLUDE structure we need to create a Line type for that structure in Se11 and then we can define the internal table like :
DATA : ITAB TYPE TABLE OF <LINE_TYPE>.
Only thing is this table will be a table without header. So for internal table processing we need to define a work area structure of type line of line type . EX:
DATA: WA_ITAB TYPE LINE OF <LINE_TYPE>.
Hope this helps.
Thanks,
Greetson -
DATA BASE TABLE AND INTERNAL TABLE
Dear Friends,
please help me out in getting complete information about database table and internal table.
you can email me at < Removed by moderator - please maintain e-mail iDs in Business Card>
Message was edited by:
Arun VaradarajanHi Hazi,
<b>DATABASE Tables :</b>
This are the tables which are stored in the database (eg Oracle , informix , DB2 etc..) Physically. u can view it from T-codes SE11 or SE16. here in SE11 u can create ur own Transparent table.
for more information...
http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/dictionary_tutorial.html
<b>Internal Tables.</b>
While generating reports or other objects we are not modifying the database tables directly first we are selecting the data of the database table into the internal tables... so that we can reduce the database access time and network traffic .. which is highly needed in R/3 system..
internal tables are not exist phyiscally in the system. its like a array. the existance of the internal tables is upto the program execution in which u r declaring nd using it...
for more information..
http://www.sapbrainsonline.com/TUTORIALS/TECHNICAL/internaltables_tutorial.html
Hope it will solve ur problem..
<b>Reward points if useful..</b>
Thanks & Regards
ilesh 24x7 -
Table types and internal table
Hi all,
What is the relationship between table type in ABAP dictionary and internal table?
Moderator message : Search for available information OR read ABAP documentation. Thread locked.
Edited by: Vinod Kumar on Jul 16, 2011 11:16 AMYou can INCLUDE TYPE.
Types: begin of itab,
field1 type string,
field2 type string,
* More Fields in here.
Field30 type string,
End of itab.
Data: lt_itab type table of itab.
TYPES BEGIN OF new_itab.
INCLUDE type itab.
TYPES: field31 type string,
field32 type string,
END OF new_itab.
Regards,
Rich Heilman -
How do we pass values and Internal tables to Sub-routines
how do we pass values and Internal tables to Sub-routines
Hi,
You can use the USING..or TABLES..or Changing addition..
Check this example.
DATA: T_MARA TYPE STANDARD TABLE OF MARA.
PERFORM DISPLAY USING T_MARA.
FORM DISPLAY USING LT_MARA LIKE T_MARA.
DATA: WA TYPE MARA.
LOOP AT LT_MARA INTO WA.
WRITE: / WA-MATNR.
ENDLOOP.
ENDFORM.
Thanks
Naren -
GET statement and internal table
Hi community,
I use the GET statement and I want to use some older code segments.
I read somewhere that I can use the result of GET like an internal table.
So I tried to get the content of bsid into my internal table it_bsid. But that doesn't seem to work.
Do you have any advice in this?
I wanted to do the following:
TABLES:
KNA1,
BSID,
BKPF.
DATA:
it_bsid TYPE TABLE OF bsid WITH HEADER LINE,
is_bsid LIKE LINE OF it_bsid,
GET bsid.
LOOP AT bsid.
APPEND it_bsid.
ENDLOOP.
-or-
GET bsid.
LOOP AT bsid INTO is_bsid.
APPEND is_bsid TO it_bsid.
ENDLOOP.
But in both cases I get an error.
' "VERSION ... ." expected after "BSID" '
Do you know what is the reason for that?
Regards
Tobias
Edited by: Tobias Oelschlaeger on Feb 29, 2008 4:18 PMHi Tobias,
first you have to assign a logical database which has BSID to your program (in program attributes).
Then GET is the event triggered by the next BSID record according to your selection. You can not LOOP here but you may append to an internal table. This table may be processed using LOOP in the END-OF-SELECTION event.
Read some documentation about LDB [Logical Databases|http://help.sap.com/erp2005_ehp_01/helpdata/en/f0/ca4584260211d28a430000e829fbbd/content.htm] - it may help to understand the concept of this obsolete technique.
Regards,
Clemens -
Dynamic Structures and Internal Tables
Hi All,
I am doing a report to create condition records based on the condition type and condition table. Assume the condition type as PR00 and it as condition table of 304,305,306.Each condition table as its own header and item fields.Based on the condition table that the user specifies in the selection screen
the header and item structures of my report should change dynamically and these should be moved to the dynamic internal table that contains both header and item fields.Can anyone give an idea how to achieve it. Thanks in advance.
Regards,
Chakradhar.Hi All,
Thanks for your replies.
SPLIT i_string_line-input_str AT cl_abap_char_utilities=>horizontal_tab
INTO i_header_line-header
i_header_line-vkorg
i_header_line-vtweg
i_header_line-pltyp
i_header_line-waerk.
In the above syntax based on the condition table I selected on selection screen my flat file is as below.
case 1: If condition table given is 304
H SalesOrganization DistributionChannel Customer
I Material Releasestatus Amount Currency ValidFrom ValidTo
case 2: If condition table given is 305
H SalesOrganization DistributionChannel
I Material Releasestatus Amount Currency ValidFrom ValidTo
case 3: If condition table given is 306
H SalesOrganization DistributionChannel PriceListType DocumentCurrency
I Material Releasestatus Amount Currency ValidFrom ValidTo
In the above code i_string_line-input_str contains the following heading of fields based on the condition table we select in selection screen.when I want to split them into respective fields
using INTO clause my structure should change dynamically.How can I achieve it and my entire program is in OOPS ALV.Thanks in Advance.
Regards,
Chakradhar. -
Comparing Application server file and internal table
hi all
Iam new to the world of ABAP. I have a requirement wherein i need to compare data in a internal table and that of the file. I need to extract the delta records( ie the record is found in the internal table but not in the file and vice versa ) and put it in another internal table. Which is the best way to do it?
Awaiting quick reply. Thanks
Nirmal.Hello Nimal
First read the file into your itab. For comparison you can use the same logic as change documents are prepared. Assuming both of your itabs are of structure struc_a. Then define the following type:
TYPES: BEGIN OF ty_s_itab_di.
INCLUDE TYPE struc_a.
TYPES: CHIND TYPE bu_chind.
TYPES: END OF ty_s_itab_di.
TYPES: ty_t_itab_di TYPE STANDARD TABLE OF ty_s_itab_di
WITH DEFAULT KEY.
DATA:
gt_itab_old TYPE ty_t_itab_di,
gt_itab_new TYPE ty_t_itab_di.
Fill itabs gt_Itab_old with the corresponding data of itab1 and gt_itab_new with the corresponding data of itab2.
Very important: sort you itabs either by all key fields or by all fields.
Call function CHANGEDOCUMENT_PREPARE_TABLES with the following parameters:
- CHECK_INDICATOR = ' '
- TABLE_NEW = gt_Itab_new
- TABLE_OLD = gt_itab_old
The function module will remove identical lines from both itabs. New entries in gt_itab_New will have CHIND = 'I' and deleted entries in gt_itab_old will have CHIND = 'D'.
Read the documentation of the function module and play around with it. You will see that this a quite easy yet powerful approach for comparing itabs.
Regards
Uwe -
Help regarding 'table controls' and 'internal table' updation
Hi all.
Basically this is what i have done..... I have created a table control in module pool program. I declared an Internal table and also have populated it from a database table. I have also used insert statement to insert an blank record in the table control view and delete statements to delete any record, also in the table control view... .
But I am not able to update any new record into an Internal table or the original table ..
Any Ideas how to do it ,Gurus
ThanksHEllo,
Check thsi simple report.
REPORT ZTFH_TABLECONTROL .
TABLES : ZEMPTABLE.
DATA : SELLINE .
DATA : FLD(20).
DATA : LINNO TYPE I , OFF TYPE I.
DATA : ITAB LIKE ZEMPTABLE OCCURS 10 WITH HEADER LINE.
CONTROLS : CON_TAB TYPE TABLEVIEW USING SCREEN 100.
SELECT * FROM ZEMPTABLE INTO TABLE ITAB.
DESCRIBE TABLE ITAB LINES CON_TAB-LINES.
CALL SCREEN 100.
*& Module EXT_COMM INPUT
* text
MODULE EXT_COMM INPUT.
LEAVE PROGRAM.
ENDMODULE. " EXT_COMM INPUT
*& Module TAB_UPDATE INPUT
* text
MODULE TAB_UPDATE INPUT.
CASE SY-UCOMM.
WHEN 'DEL'.
IF SELLINE = 'X'.
DELETE ITAB WHERE EMPNO = ITAB-EMPNO.
MESSAGE I000(ZYF_DEL).
ENDIF.
WHEN 'UPD'.
IF SELLINE = 'X'.
MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
MESSAGE I001(ZYF_DEL).
ENDIF.
WHEN 'INS'.
IF SELLINE = 'X'.
GET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
SET CURSOR FIELD FLD LINE LINNO OFFSET OFF.
IF FLD CP 'ITAB*' AND SY-SUBRC = 0.
IF LINNO >= 1.
LINNO = LINNO + CON_TAB-TOP_LINE - 1.
CLEAR ITAB.
INSERT ITAB INDEX LINNO.
CON_TAB-LINES = CON_TAB-LINES + 1.
ELSE.
CLEAR ITAB.
APPEND ITAB.
CON_TAB-LINES = CON_TAB-LINES + 1.
ENDIF.
ENDIF.
ENDIF.
WHEN 'SAV'.
MODIFY ITAB INDEX CON_TAB-CURRENT_LINE.
MESSAGE I002(ZYF_DEL).
ENDCASE.
ENDMODULE. " TAB_UPDATE INPUT
FLOW LOGIC
PROCESS BEFORE OUTPUT.
MODULE STATUS_0100.
LOOP AT ITAB WITH CONTROL CON_TAB.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0100.
MODULE EXT_COMM AT EXIT-COMMAND.
LOOP AT ITAB.
MODULE TAB_UPDATE.
ENDLOOP.
REgards,
Vasanth
Maybe you are looking for
-
My 17 in G4 powerbook has svideo which allows me to watch movies on my tv. Question is, is this svideo conection in and out? I'd like to use it to record from my VCR to digitize some of my older vhs footage. Peter
-
I have iPhone 3GS, if I install iOS 4.3.5. will it be locked again?
I have iPhone 3GS, if I install iOS 4.3.5. will it be locked again?
-
hi there, I'm so new to SAP and ABAP and i want so bad to learn it so i went and i got ABAP Objects: An introduction to Programming SAP Applications. I did install the CD 1, and 2. everything was great. I log in to the system and i went to the snd ch
-
Adding network switch to external WAN to increase number of ports available
This may be a stupid question but this has kinda been landed on me so I'll ask anyway. We have a Cisco router with ethernet connection to our provider's NTE. They provide us with one ethernet port on the NTE which we connect to the WAN port on our C
-
Application files are corrupted. How do I reinstall application files?
I own the macbook Pro. My application files are corrupted. How do I reinstall them?