Inner join on bkpf and bsid

Hi Experts ,
I want to do an inner join on bsid and bkpf tables in the select query . I want to order the result on the basis of cputm field in bkpf , that is why inner join on bkpf is req , rest all the fields are from bsid . But the requirement  is that we should not select the cputm field in the select , it is only to be used for sorting the result of the select query . we are also using select * from bsid where ......  endselect . and not specific fields from bsid currently . Kindly let me know how to use the inner join on bkpf and bsid in this case .
Would reward all helpful answers .
Thanks

Hi Ankit,
First make a structure of the required fields.
TABLES : bkpf,bsid.
TYPES : BEGIN OF x_tab,
          belnr like bkpf-belnr,
          kunnr like bsid-kunnr,
          bldat like bsid-bldat,
          budat like bsid-budat,
          waers like bsid-waers,
      END OF x_tab.
DATA :  itab type STANDARD TABLE OF x_tab,
        wa_itab TYPE x_tab.
start-of-SELECTION.
SELECT bkpfbelnr bsidkunnr bsidbldat bsidbudat bsid~waers into table itab
   FROM bkpf INNER JOIN bsid on bkpfbelnr = bsidbelnr and
                                bkpfbukrs = bsidbukrs and
                                bkpfgjahr = bsidgjahr.
Rewards Points, if useful.
Regards
Manoj Kumar
Edited by: Manoj Kumar on Dec 26, 2007 2:36 PM

Similar Messages

  • ALV report on BKPF and BSID

    hi gurujis,
                  with your kind help i am learning something, but there is problem in each step. Now i am working with FI , i have came to  know about two tables,
    they are BKPF and BSID i have to join them and also produce output on the basis of 4 inputs like company no, coustomer no, currency and posting date. I need your help on this, can somebody send me the code to do this.
    Also i would like to know is there any FM's to join two or more tables, if yes, please send me the name of that module with an complete example.
    I need this , it is very urgent.
    Thanks,
    KHAN.

    hi Khan,
    SELECT bkpf~...
                 bsid~...
    INTO TABLE ...
    FROM bkpf AS bkpf
    INNER JOIN bsid AS bsid
    ON bkpf~bukrs EQ bsid~bukrs
    AND bkpf~gjahr EQ bsid~gjahr
    AND bkpf~belnr EQ bsid~belnr
    WHERE bkpf~bukrs EQ p_bukrs
          AND bsid~kunnr IN s_kunnr
          AND bkpf~waers EQ p_waers
          AND bkpf~budat EQ p_budat.
    hope this helps
    ec

  • Poor Performance on Inner Join of VBUP and VBAK

    The following select is performing poorly, i.e., ST05 Execution is 1, Records is 246, but Time/Exec 94,499,272. Very poor.
    SELECT VBUPVBELN VBUPPOSNR VBAK~KUNNR
             FROM VBUP INNER JOIN VBAK
             ON VBUPVBELN = VBAKVBELN
             WHERE VBAK~VBTYP EQ 'C'     
               AND VBUP~LFSTA NE 'C'
               AND VBUP~LFGSA NE 'C'.
    VBUP has a custom index, Z01, on MANDT, LFSTA, LFGSA. There is no index on VBAK.
    The Explain under ST05 indicates an Est. I/O cost of 73.94 for a Clustered Index Seek on [VBAK].[VBAK0], and an Est. I/O cost of 81.34 for an Index Seek on [VBUP].[VBUPZ01].
    There is no index on VBAK, so I assume that's the first problem. But I don't understand why the index on VBUP does not appear to be helping. This the ST05 Explain: Index Seek WHERE: [PCI].[pci].[VBUP].[LFGSA] as [T_00].[LFGSA]<[@P4] OR [PCI].[pci].[VBUP].[LFGSA] as [T_00].[LFGSA]>[@P4] : [VBUP].MANDT EQ [@P1] ORDERED 1.
    Is my index even being used?  Any ideas how I can speed this up?
    Thanks in advance for your help.
    Beth

    tis the negative selection which is causing the problem..try to avoid selection using not equal to.
    try this.
    ranges : r_lfsta for vbup-lfsta.
    r_lfsta-sign = 'I'.
    r_lfsta-option = 'EQ'.
    r_lfsta-low = ' '.
    append r_lfsta.
    r_lfsta-low = 'A'.
    append r_lfsta.
    r_lfsta-low = 'B'.
    append r_lfsta.
    do similar for r_lfgsa also.
    SELECT VBUP~VBELN
                 VBUP~POSNR
                 VBAK~KUNNR
    FROM VBUP INNER JOIN VBAK
    into corresponding fields of table t_vbakvbup
    ON VBUPVBELN = VBAKVBELN
    WHERE VBAK~VBTYP EQ 'C'
    AND VBUP~LFSTA in r_lfsta
    AND VBUP~LFGSA in r_lfgsa. 
    or
    SELECT VBUP~VBELN
                 VBUP~POSNR
                 VBAK~KUNNR
    vbup~lfsta
    vbup~lfgsa
    FROM VBUP INNER JOIN VBAK
    into corresponding fields of table t_vbakvbup
    ON VBUPVBELN = VBAKVBELN
    WHERE VBAK~VBTYP EQ 'C' .
    delete t_vbakvbup where lfsta ne 'C'.
    delete t_vbakvbup where lfgsa ne 'C'.

  • Inner join in ABAP and exporting the data

    Hi,
    I want to use inner join in ABAP for retrieving data from 2 tables and export that data.How will i do it?

    Hi,
    Refer following code
    *--Select query to pick the data from table VBRK
    VBRP and VBPA using inner join
      SELECT a~vbeln                            "Billing document
             a~fkdat                            "Billing date
             a~fktyp                            "Billing category
             a~fkart                            "Billing type
             a~vtweg                            "Distribution channel
             a~knumv                            "Number of doc condition
             b~posnr                            "Billing item
             b~matnr                            "Material Number
             b~werks                            "Plant
             b~vgbel                            "Referance
             b~netwr                            "Net value of billing item
             b~wavwr                            "Cost in document currency
             c~kunnr                            "Partner function
             FROM vbrk AS a
             INNER JOIN vbrp AS b
             ON avbeln EQ bvbeln
             INNER JOIN vbpa AS c
             ON  bvbeln EQ cvbeln
            AND bposnr EQ cposnr
             INTO CORRESPONDING FIELDS OF TABLE it_vbrp
             WHERE fkdat IN s_erdat
             AND   parvw EQ 'ZS'.
      IF sy-subrc EQ 0.
    *--Sort table by
        SORT it_vbrp BY vgbel1.
      ENDIF.
    Regards,
    Prashant

  • Inner join between OBOE and OBOT

    Hi all,
    I am trying to query these tables, but for all the system displays data from these tables in only one windows, MSQL does not inner join this tables.
    So, we are looking for the relation in these two tables, or between OBOE and JDT1/OJDT would be enought.
    Thanks and regards,
    Javier Zapata

    Hi,
    i'm not sure but you can try to use the table BOT1 (Bill of Exchange Transactions details).
    Here you can find the field AbsEntry (related to the table OBOT) and the field BOENumber (related to OBOE table).
    Hope this helps
    Regards,
    Fabio Salucci

  • Issue with the inner join on EKKO and EKPO.

    Dear All,
    The report using this join takes a long time to execute.
    Does this inner join have an issue?
    Do i need to code this in a different way for lesser execution time?
    Please give me your inputs.
    SELECT
            a~ebeln
            b~ebelp
            a~bukrs
            a~bstyp
            a~bsart
            a~ekorg
            a~ekgrp
            a~kdatb
            a~kdate
            FROM ekko AS a JOIN ekpo AS b
            ON aebeln = bebeln
            INTO TABLE t_ekpo
            WHERE
            a~bukrs EQ p_bukrs
            AND a~bstyp EQ c_k
            AND a~bsart IN s_bsart
            AND a~ekorg IN s_ekorg
            AND a~ekgrp IN s_ekgrp
            AND a~kdate GE s_fdate-low
            AND a~loekz EQ space
            AND b~loekz EQ space.
    Regards,
    SuryaD.

    Index EKKO~D consists top-down of BSTYP and BEDAT. BSTYP is already an EQ-condition in your selection, but not very selective (many rows with the same value). So including BEDAT should help in efficiently reducing the data that needs to be scanned for finding the relevant rows. However, just a new optional S_BEDAT select option that can be left empty by the user would not help, you must force a narrow selection (one month, one week, even one day? the less the better).
    This is just a quick guess from my side, there might be other options that occur to you once you have analysed the available indexes. Sometimes alternative tables could be the solution, and even less sometimes introducing a new secondary index for a standard table might be the last option (takes up space and adds processing time to insert/update/delete operations).
    Thomas

  • Link for BUT000 table and ADRC in CRM and inner join is not working in PCUI

    Hi Gurus,
       Please tell me the link btween BUT000 and ADRC table. and i wrote one inner join between BUT000 and BUT0id table but it not working. I m in CRM 4.0 version working with PCUI.
    select but000partner but000name_org1 but000name_org2 but000bus_sort1 but0id~parnter1
          but0ididnumber from but000 inner join but0id on but0idpartner = but000~parnter
    into corresponding fields of table it_result where partner in s_partner.
    It is giving error as partner unknown from but000 table. I delcared everything and tried with alias names also.
    please clarify me.
    regards,
    Ramakrishna.

    Hi Frederic,
       thanks a lot. But is inner join between BUT000 and BUT0ID will work. for me it is not working. plesae see this code.
    tables : but000,
             but0id,
             crmm_but_custno,
             adrc.
    types : begin of typ_but000,
            partner type bu_partner,
            name_org1 type BU_NAMEOR1,
            name_org2 type BU_NAMEOR2,
            bu_sort1  type BU_SORT1,
            idnumber type BU_ID_NUMBER,
            partner1 type bu_partner,
            end of typ_but000.
    data: lt_but000 type table of typ_but000,
          ls_but000 like line of lt_but000.
    *select-options : s_partnr for but000-partner.
    start-of-selection.
          select but000partner but000name_org1 but000name_org2 but000bu_sort1 but0id~parnter1
                    but0id~idnumber into corresponding fields of table lt_but000 from  but000
                    inner join but0id on but0idpartner = but000parnter. " where partner in s_partner.
    it is giving error as but000-partner is not know or but0id-partner not known.
    So, i think if it not works then i should write two select stmts.
    please clarify me.
    i gave u rating.
    thanks
    ramakrishna.

  • Need help with inner join and distinct rows

    Hey Guys,
    i have
    1) BaseEnv Table 
    2) Link Table
    3) BaseData Table
    Link table has three columns Id,BaseEnvId,BaseDataId 
    the BaseEnvID is unique in the table where as BaseDataId can be repeated i.e multile rows of BaseEnv Table can point to same BaseData  table row
    Now i want to do  BaseEnvTable inner join Link Table inner join BaseData Table and select 5 columsn ; Name,SyncName,Version,PPO,DOM  from the BaseData table.. the problem is that after i do the inner join I get duplciate records..
    i want to eliminate the duplicate records , can any one help me here

    Please post DDL, so that people do not have to guess what the keys, constraints, Declarative Referential Integrity, data types, etc. in your schema are. Learn how to follow ISO-11179 data element naming conventions and formatting rules. 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. Now we have to guess and type, guess and type, etc. because of your bad manners. 
    CREATE TABLE Base_Env
    (base_env_id CHAR(10) NOT NULL PRIMARY KEY,
    Think about the name Base_Data; do you have lots of tables without data? Silly, unh? 
    CREATE TABLE Base_Data
    (base_data_id CHAR(10) NOT NULL PRIMARY KEY,
    Your Links table is wrong in concept and implementation. The term “link” refers to a pointer chain structure used in network databases and makes no sense in RDBMS. There is no generic, magic, universal “id” in RDBMS! People that do this are called “id-iots”
    in SQL slang. 
    We can model a particular relationship in a table by referencing the keys in other tables. But we need to know if the relationship is 1:1, 1:m, or n:m. This is the membership of the relationship. Your narrative implies this: 
    CREATE TABLE Links
    (base_env_id CHAR(10) NOT NULL UNIQUE
       REFERENCES Base_Env (base_env_id),
     base_data_id CHAR(10) NOT NULL
       REFERENCES Base_Data (base_data_id));
    >> The base_env_id is unique in the table where as base_data_id can be repeated I.e multiple rows of Base_Env Table can point [sic] to same Base_Data table row. <<
    Again, RDBMS has no pointers! We have referenced an referencing tables. This is a fundamental concept. 
    That narrative you posted has no ON clauses! And the narrative is also wrong. There is no generic “name”, etc. What tables were used in your non-query? Replace the ?? in this skeleton: 
    SELECT ??.something_name, ??.sync_name, ??.something_version, 
           ??.ppo, ??.dom
    FROM Base_Env AS E, Links AS L, Base_Data AS D
    WHERE ?????????;
    >> I want to eliminate the duplicate records [sic], can any one help me here?<<
    Where is the sample data? Where is the results? Please read a book on RDBMS so you can post correct SQL 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

  • Short Dump on Inner Join

    Hello Experts,
    I'm trying to write a Inner join on VBAK and VBAP because i need to get data from both tables.  When I try to execute the following code I'm getting a short dump "Error in module RSQL of the database Interface". Can anybody see what's wrong with this select.
           begin of t_sales_order,
             vbeln  type vbak-vbeln,    "Sales Order
             auart  type vbak-auart,     "Order Type
             audat  type vbak-audat,     "Shipment Creation date field
             posnr  type vbap-posnr,    "Items
             kdmat  type vbap-matnr,    "Lead Pin
             cuobj  type vbap-cuobj,    "Configuration Object ID
             end of t_sales_order,
    data: lwa_sales_order           type t_Sales_Order.
          select single avbeln aaudat a~auart
                        bposnr bkdmat b~cuobj
                          into lwa_sales_order
                             from vbak as a inner join vbap as b
                                  on avbeln = bvbeln
                                     where b~kdmat = pv_pin_number.
    Many thanks in advance.

    Hi
    Your internal table fields sequences are not followed in Inner Join.
    begin of t_sales_order,
    vbeln type vbak-vbeln, "Sales Order
    auart type vbak-auart, "Order Type
    audat type vbak-audat, "Shipment Creation date field
    posnr type vbap-posnr, "Items
    kdmat type vbap-matnr, "Lead Pin
    cuobj type vbap-cuobj, "Configuration Object ID
    end of t_sales_order,
    select single a~vbeln *a~auart* a~audat
    b~posnr b~kdmat b~cuobj
    into lwa_sales_order
    from vbak as a inner join vbap as b
    on a~vbeln = b~vbeln
    where b~kdmat = pv_pin_number.
    Please check the above code
    Shiva

  • Nester inner joins

    SELECT order_head.ID col
    FROM
    order order_head
    INNER JOIN customer customer_2 ON order_head.customerID = customer_2.ID
    WHERE
    order_head.orderDate BETWEEN '12/12/2001'
    AND '12/12/2009'
    AND order_head.ID <> 0
    AND customer_2.LastName = 'smith'
    AND order_head.status = 1
    INNER JOIN (customer_2 INNER JOIN order_head ON customer_2.ID = order_head.customerID) ON cust_address.ID = customer_2.AddressID )
    WHERE cust_address.postcode = 'NW1 9PQ'
    Error : Incorrect syntax near the keyword 'INNER'.
    The last bit in bold does not work the other stuff works correctly, what I am trying to do that does not work is find orders from customers with last name of smith and post code of 'NW1 9PQ', it is unfortunate that the tables are from a third party and cannot be changed and so I am stuck with the table structure. I am also trying to stick with joins.
    I have tested this inner join in isolation and appears to work fine !!!!
    Any suggestions or pointers will be most appriciated, thanks in advance....
    BM

    [email protected] wrote:
    Error : Incorrect syntax near the keyword 'INNER'.
    The last bit in bold does not work the other stuff works correctly, what I am trying to do that does not work is find orders from customers with last name of smith and post code of 'NW1 9PQ', it is unfortunate that the tables are from a third party and cannot be changed and so I am stuck with the table structure. I am also trying to stick with joins.
    I have tested this inner join in isolation and appears to work fine !!!!
    Any suggestions or pointers will be most appriciated, thanks in advance....BM,
    probably you just need follow the correct syntax described in the previous post and put first the join operators. If you really think you have the need to use nested query, you could use an approach like that:
    SELECT order_head.ID col
    FROM order order_head
    INNER JOIN customer customer_2 ON order_head.customerID = customer_2.ID
    INNER JOIN (
    select c2.* from customer c2 INNER JOIN order o2 ON c2.ID = o2.customerID
    ) cust_address ON cust_address.ID = customer_2.AddressID
    WHERE order_head.orderDate BETWEEN '12/12/2001'
    AND '12/12/2009'
    AND order_head.ID <> 0
    AND customer_2.LastName = 'smith'
    AND order_head.status = 1
    AND cust_address.postcode = 'NW1 9PQ'Probably above statement doesn't make sense content-wise but I just wanted to use it for illustrative purposes that you can use nested subqueries like that.
    Regards,
    Randolf
    Oracle related stuff blog:
    http://oracle-randolf.blogspot.com/
    SQLTools++ for Oracle (Open source Oracle GUI for Windows):
    http://www.sqltools-plusplus.org:7676/
    http://sourceforge.net/projects/sqlt-pp/

  • How to re-write this big SELECT Query with INNER JOINs?

    Hi Experts
    I have a performance killer SELECT query with an inner join of 3 tables u2013 VBAP, VBAK and VBEP together, which populates records to an internal table INT_COLL_ORD. Based on these records selected, in another SELECT query, records are fetched from VBUK table to the internal table INT_VBUK.
    SELECT A~VBELN A~POSNR A~MATNR A~KWMENG A~KBMENG A~ERDAT A~ERZET A~PSTYV D~AUART E~ETTYP E~EDATU
    INTO TABLE INT_TAB_RES
    FROM VBAP AS A INNER JOIN VBAK AS D
    ON D~VBELN EQ A~VBELN AND D~MANDT EQ A~MANDT
    INNER JOIN VBEP AS E
    ON E~VBELN EQ A~VBELN AND E~POSNR EQ A~POSNR AND E~MANDT EQ A~MANDT
    WHERE  A~VBELN IN s_VBELN AND
           D~auart in s_auart AND
           D~vkorg in s_vkorg AND
           D~vbtyp eq 'C'     AND
           ( ( matnr LIKE c_prefix_sp AND zz_msposnr NE 0 AND kbmeng EQ 0 )
           OR ( matnr LIKE c_prefix_fp AND kwmeng NE A~kbmeng ) ) AND
           A~ABGRU EQ SPACE AND
           A~MTVFP IN R_MTVFP AND
           A~PRCTR IN R_PRCT AND
           E~ETENR EQ '1'.
    SORT INT_COLL_ORD BY VBELN POSNR ETTYP.
    DELETE ADJACENT DUPLICATES FROM INT_TAB_RES COMPARING VBELN POSNR.
    CHECK NOT INT_TAB_RES [] IS INITIAL.
    SELECT VBELN UVALL CMGST INTO TABLE INT_VBUK
    FROM VBUK FOR ALL ENTRIES IN INT_TAB_RES
    WHERE VBELN = INT_TAB_RES-VBELN AND UVALL NE 'A'.
    Now, the requirement is:
    I want to split this query. Like, first join VBAK and VBUK first. With this selection, go to the inner join of VBAP and VBEP (on key VBELN) to get the results. How can I re-write this Query?
    Please help.
    Thx n Rgds

    Hi Nagraj
    As of your suggestion, I have re-written the query as below:
    * Declarations
    TYPES: BEGIN OF TYP_COLL_ORD,
            VBELN  LIKE VBAK-VBELN,
            POSNR  LIKE VBUP-POSNR,
            MATNR  LIKE VBAP-MATNR,
            KWMENG LIKE VBAP-KWMENG,
            KBMENG LIKE VBAP-KBMENG,
            ERDAT  LIKE VBAK-ERDAT,
            ERZET  LIKE VBAK-ERZET,
            PSTYV  LIKE VBAP-PSTYV,
            AUART  LIKE VBAK-AUART, u201Calready exists in type
            ETTYP  LIKE VBEP-ETTYP,
            EDATU  LIKE VBEP-EDATU.
    TYPES: END OF TYP_COLL_ORD.
    DATA: INT_COLL_ORD TYPE TABLE OF TYP_COLL_ORD WITH HEADER LINE.
    TYPES: BEGIN OF TYP_VBUK,
            AUART  LIKE VBAK-AUART, u201Chave added this field
            VBELN  LIKE VBUK-VBELN,
            UVALL  LIKE VBUK-UVALL,
            CMGST  LIKE VBUK-CMGST.
    TYPES: END OF TYP_VBUK.
    DATA: INT_VBUK TYPE TABLE OF TYP_VBUK WITH HEADER LINE.
    *QUERY#1 u2013 for VBAK & VBUK Join
    SELECT A~AUART B~VBELN B~UVALL B~CMGST
    INTO TABLE INT_VBUK
    FROM VBAK AS A INNER JOIN VBUK AS B
    ON A~VBELN EQ B~VBELN
    WHERE A~VBELN IN s_VBELN AND
    A~auart in s_auart AND
    A~vkorg in s_vkorg AND
    A~vbtyp eq 'C' AND
    B~UVALL NE 'A'.
    IF NOT INT_VBUK[] IS INITIAL.
    SORT INT_VBUK BY VBELN.
    DELETE ADJACENT DUPLICATES FROM INT_VBUK COMPARING VBELN.
    *QUERY#2 u2013 for VBAP & VBEP Join
    SELECT A~VBELN A~POSNR A~MATNR A~KWMENG A~KBMENG A~ERDAT A~ERZET A~PSTYV B~ETTYP B~EDATU
    INTO TABLE INT_COLL_ORD
    FROM VBAP AS A INNER JOIN VBEP AS B
    ON B~VBELN EQ A~VBELN AND B~POSNR EQ A~POSNR AND B~MANDT EQ A~MANDT
    FOR ALL ENTRIES IN INT_VBUK
    WHERE A~VBELN = INT_VBUK-VBELN AND
    ( ( matnr LIKE c_prefix_sp AND zz_msposnr NE 0 AND kbmeng EQ 0 )
    OR ( matnr LIKE c_prefix_fp AND kwmeng NE A~kbmeng ) ) AND
    A~ABGRU EQ SPACE AND
    A~MTVFP IN R_MTVFP AND
    A~PRCTR IN R_PRCT AND
    B~ETENR EQ '1'.
    ENDIF.
      SORT INT_COLL_ORD BY  VBELN POSNR ETTYP.
      DELETE ADJACENT DUPLICATES FROM INT_COLL_ORD
        COMPARING VBELN POSNR.
      CHECK NOT INT_COLL_ORD[] IS INITIAL.
      LOOP AT INT_COLL_ORD.
        CLEAR: L_MTART,L_ATPPR,L_ETTYP.
        IF L_PREVIOUS_ETTYP NE INT_COLL_ORD-ETTYP OR
          L_PREVIOUS_AUART NE INT_COLL_ORD-AUART.
          READ TABLE INT_OVRCTL WITH KEY AUART = INT_COLL_ORD-AUART ETTYP = INT_COLL_ORD-ETTYP.
          CHECK SY-SUBRC NE 0.
    Now, the issue is:
    Please note that declaration for INT_COLL_ORD has a field AUART, which is used in further parts of program (see the statement just above)
    But, since neither VBAP nor VBEP contains AUART field, it cannot be fetched through the QUERY#2. So this value is not populated into INT_COLL_ORD through SELECT Query.
    Since this field is used in later part of program & that the internal table has no value for this field, it dumps!!
    How to include this value into the INT_COLL_ORD?
    Plz suggest....

  • How to use BKPF and BSEG without using  inner join

    Hi,
    can anybody plz tell me the logic about how to complete the report without inner joining bkpf and bseg.Is this report can be really be made by using only bseg,bkpf ?
    *selection-criteria .
    BKPF-USNAM
    BKPF-CPUDT
    BKPF-BUDAT
    BKPF-GJAHR
    BKPF-BUKRS
    BKPF-BELNR
    BSEG-SAKNR
    BSEG-LIFNR
    BSEG-KUNNR
    BSEG-ZUONR
    BSEG-SGTXT
    Output fields required.
    BKPF-BUKRS
    BKPF-BELNR
    BKPF-GJAHR
    BKPF-MONAT
    BKPF-BLART
    BKPF-CPUDT
    BKPF-BLDAT
    BKPF-BUDAT
    BKPF-USNAM
    BKPF-XBLNR
    BKPF-STBLG
    BKPF-BKTXT
    BKPF-WAERS
    BKPF-KURSF
    BSEG-BUZEI
    BSEG-BSCHL
    BSEG-KOART
    BSEG-UMSKZ
    BSEG-SHKZG
    BSEG-MWSKZ
    BSEG-PSWBT
    BSEG-PSWSL
    BSEG-DMBTR
    BSEG-SAKNR
    BSEG-HKONT
    BSEG-KOSTL
    BSEG-KUNNR
    BSEG-VBELN
    BSEG-LIFNR
    BSEG-ANLN1
    BSEG-ANLN2
    BSEG-AUFNR
    BSEG-MATNR
    BSEG-MENGE
    BSEG-MEINS
    BSEG-ZUONR
    BSEG-SGTXT
    Thanks,
    Rahman
    Moderator Message: Please search before posting your question. Thread locked.
    Edited by: Suhas Saha on Jan 31, 2012 3:07 PM

    Quick question - what's preventing your from using built-in functions?
    I suggest mapping your Time Dim to a standard Time Dim and work with it - you'll save a lot more time. You'd even need this table if you wanted to work around Todate/AGO.
    It is possible to model this functionality w/o functions, but it'll be time consuming task, similar to using Time Series Wizard in Siebel Analytics. You'll need to build aliases and views along with some complex joins (such as TIME.KEY=TIME.KEY-365), introduce a bunch of variables to control. Also, you might not get much flexibility in terms of years. For each year, you'd need an alias table. (TIME_DIM_PY).

  • JOIN for BSEG, BSIS, BSAS, MSEG, BKPF and MKPF

    I am developing a report related to G/L . i am using the Tables BSEG BSIS BSAS MSEG BKPF MKPF ............please give me the Joinings of these tables.......how exactly we can join and get the prefect Data....
    Thank U waiting for ur replies....
    Title edited by: Alvaro Tejada Galindo on Jun 3, 2008 3:41 PM

    I have given the tables, internal tables and the select queries which can give you the join conditions of your requirement.
    tables: bsis,
            bsas,
            bkpf,
            bseg,
            ekbe,
            mkpf,
            mseg.
    select-options: s_hkont  for bseg-hkont,
                    s_bldat  for bkpf-budat,
                    s_budat  for bkpf-bldat obligatory,
                    s_lifnr  for bseg-lifnr,
                    s_lfbnr  for ekbe-lfbnr no intervals no-extension.
    data: begin of i_bsis_bsas occurs 0,
            bukrs like bsis-bukrs,
            hkont like bsis-hkont,
            gjahr like bsis-gjahr,
            belnr like bsis-belnr,
            budat like bsis-budat,
            bldat like bsis-bldat,
            xblnr like bsis-xblnr,
            wrbtr like bsis-wrbtr,
            buzei like bsis-buzei,
          end   of i_bsis_bsas,
          begin of i_bkpf     occurs 0,
            bukrs like bsis-bukrs,
            belnr like bsis-belnr,
            gjahr like bsis-gjahr,
            xblnr like bkpf-xblnr,
            stblg like bkpf-stblg,
            awtyp like bkpf-awtyp,
            tcode like bkpf-tcode,
          end   of i_bkpf,
          begin of i_bseg     occurs 0,
            bukrs like bsis-bukrs,
            belnr like bsis-belnr,
            gjahr like bsis-gjahr,
            buzei like bseg-buzei,
            buzid like bseg-buzid,
            koart like bseg-koart,
            zuonr like bseg-zuonr,
            hkont like bseg-hkont,
            lifnr like bseg-lifnr,
            sgtxt like bseg-sgtxt,
            ebeln like bseg-ebeln,
            ebelp like bseg-ebelp,
            wrbtr like bseg-wrbtr,
          end   of i_bseg,
          begin of i_ekbe    occurs 0,
            ebeln like ekbe-ebeln,
            ebelp like ekbe-ebelp,
            gjahr like ekbe-gjahr,
            belnr like ekbe-belnr,
            buzei like ekbe-buzei,
            lfgja like ekbe-lfgja,
            lfbnr like ekbe-lfbnr,
            lfpos like ekbe-lfpos,
            matnr like ekbe-matnr,
          end   of i_ekbe,
          begin of i_mkpf_mseg occurs 0,
            mblnr like mkpf-mblnr,
            mjahr like mkpf-mjahr,
            bktxt like mkpf-bktxt,
            xblnr like mkpf-xblnr,
            frbnr like mkpf-frbnr,
            zeile like mseg-zeile,
            matnr like mseg-matnr,
            erfmg like mseg-erfmg,
          end   of i_mkpf_mseg.
    *data: wa_ekbe like i_ekbe.
    select  bukrs
              hkont
              gjahr
              belnr
              budat
              bldat
              xblnr
              wrbtr
              buzei appending corresponding fields of table i_bsis_bsas
                    from  bsis
                    where bukrs eq p_bukrs
                      and hkont in s_hkont
                      and gjahr eq p_gjahr
                      and budat in s_budat
                      and shkzg eq 'S'.
      select  bukrs
              hkont
              gjahr
              belnr
              budat
              bldat
              xblnr
              wrbtr appending corresponding fields of table i_bsis_bsas
                    from  bsas
                    where bukrs eq p_bukrs
                      and hkont in s_hkont
                      and gjahr eq p_gjahr
                      and budat in s_budat
                      and shkzg eq 'S'.
    endform.                    " f_get_bsis_bsas_data
    *&      Form  f_get_bkpf_bseg_data
          Subroutine to get BKPF and BSEG data
    form f_get_bkpf_bseg_data.
      check not i_bsis_bsas[] is initial.
      select  bukrs
              belnr
              gjahr
              xblnr
              stblg
              awtyp
              tcode into table i_bkpf
                    from bkpf
                     for all entries in i_bsis_bsas
                   where bukrs eq i_bsis_bsas-bukrs
                     and belnr eq i_bsis_bsas-belnr
                     and gjahr eq i_bsis_bsas-gjahr.
                    and awtyp = 'BKPFF'
                    and tcode = 'J1IE'.
      check not i_bkpf[] is initial.
      select  bukrs
              belnr
              gjahr
              buzei
              buzid
              koart
              zuonr
              hkont
              lifnr
              sgtxt
              ebeln
              ebelp
              wrbtr  into corresponding fields of table i_bseg
                     from bseg
                      for all entries in i_bsis_bsas
                    where bukrs eq i_bsis_bsas-bukrs
                      and belnr eq i_bsis_bsas-belnr
                      and gjahr eq i_bsis_bsas-gjahr.
                     and buzei eq i_bsis_bsas-buzei
                     and hkont eq i_bsis_bsas-hkont.
      delete i_bseg where not hkont in s_hkont.
    endform.                    " f_get_bkpf_bseg_data
    *&      Form  f_get_ekbe_data
          Subroutine to get EKBE data
    form f_get_ekbe_data.
      data: $i_bseg like i_bseg occurs 0 with header line.
      $i_bseg[]  =  i_bseg[].
      delete $i_bseg where ebeln is initial.
      check not $i_bseg[] is initial.
      select ebeln
             ebelp
             gjahr
             belnr
             buzei
             lfgja
             lfbnr
             lfpos
             matnr into table i_ekbe
                   from ekbe
                    for all entries in $i_bseg
                  where ebeln eq $i_bseg-ebeln
                    and ebelp eq $i_bseg-ebelp
                    and gjahr eq $i_bseg-gjahr
                    and bwart = '101'.
                   and belnr eq $i_bseg-belnr.
    check not i_ekbe[] is initial.
      select a~mblnr
             a~mjahr
             a~bktxt
             a~xblnr
             a~frbnr
             b~zeile
             b~matnr
             b~werks
             b~erfmg  into table i_mkpf_mseg
                      from mkpf as a inner join
                           mseg as b on amblnr eq bmblnr
                                    and amjahr eq bmjahr
                       for all entries in i_ekbe
                       where a~mblnr eq i_ekbe-lfbnr
                      and a~mjahr eq i_ekbe-gjahr
                      and b~zeile eq i_ekbe-lfpos
                        and b~werks eq p_werks.
    <REMOVED BY MODERATOR>
    Edited by: Srikanth Kadiyala on Jun 3, 2008 7:24 AM
    Edited by: Alvaro Tejada Galindo on Jun 3, 2008 3:40 PM

  • Inner join and group by

    Hi Friends,
    My code is;
      SELECT T1~NUMBER SUM( T2~QUANT )
      INTO (ZTABLE1-NUMBER, ZTABLE2-QUANT)
      FROM ZTABLE1 AS T1
      INNER JOIN ZTABLE2 AS T2
      ON T1~NUMBER = T2~NUMBER
      GROUP BY T2~VBELN.
      ENDSELECT.
    I am getting an error as;
    The field T1~NUMBER from SELECT is missing in the GROUP BY clause. addition INTO wa or INTO(g1,...,gn) is required. fields of type "" or "T2-VBELN".
    I couldn't understand anything from the error message. Can you help what the error message says and how can I do my desire on above query.
    Thanks.

    Usually GROUP BY Is used to get only aggregated fields.
    It is not meant for regular selection of fields.
    Instead do a regular selection of all the fields without group by and do your aggregation in program logic as per your requirement.
    In that way your performance will be better.
    Regards
    Sudhir Atluru

  • The process time between INNER JOIN and join in WHERE clause

    as u know, there are 2 kind of join
    SELECT *
    FROM tableA
    INNER JOIN tableB
    ON tableA.ID= tableB.ID
    WHERE ....
    and
    SELECT *
    FROM tableA, tableA
    WHERE tableA.ID = tableB.ID
    AND ....
    I find the first one is faster in MS SQL Server.
    But i test them in oracle and i find that it is the same. Is it correct?

    Who knows why SQL Server shows different timings. Perhaps it's just cos it's not good at knowing that the two things are the same.
    The only difference in timing as far as Oracle is concerned is the time it takes to parse the syntax of the query, which will be nanoseconds. The execution time of two equivalent queries will not differ based on the factor of the syntax used.

Maybe you are looking for

  • Full data is not being display in report for "LANGUAGEINDEPENDENT_EXTENDED_Text" type field

    Hi I have extended Opportunity BO with a field type LANGUAGEINDEPENDENT_EXTENDED_Text", then I have enhanced my datasource and report. for this field I have entered value almost 100 characters but in report only 60 character is being shown. Could any

  • I started with a brand new iPhoto Library and I still can't get it to work.

    I have almost 40,000 photos and iPhoto simply stopped working altogether. You can read all about my trials and tribulations here: http://www.davidgagne.net/2014/01/02/dealing-with-my-iphoto-library/ Eventually I simply resigned myself to not being ab

  • Regarding list display

    this is the alv report : the requirement is like this besade on customer id we have to display   this formate will be like this                         number     city                           xxxxx     Bangalore/ here is it own mother languag      

  • Run itunes off external hard drive and keep settings

    I have an imac which has my consolidated music library on it. I also have a macbook which i use while traveling. My itunes is about 130 gigs, which is fine on my imac, but too big for my macbook. in the past what i have done is just put everything on

  • Adobe Interactive Forms and 4.6c

    Hi to all, I have to develop and adobe interactive form within a web dynpro project with SAP WAS 6.40. This interactive form have to call an R/3 system 4.6c (via RFC) to retrieve some datas. My question is: can I use interactive forms with a 4.6c (us