Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Join is not working properly... I am getting less data usinng join query

Sattumac
Explorer
0 Kudos

This is my code, i wrote some joins to join tables, fetch data from them but my join queries are failing and they are getting less data.

TABLES:AFIH,ILOA,AUFK,EQUI.

INITIALIZATION.
****inputs for the program for fetching AUFNR*******************
  SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME.
  SELECT-OPTIONS: "SBUDAT FOR BUDAT,
                  SEQUNR FOR AFIH-EQUNR,
                  STPLNR FOR ILOA-TPLNR,
                  SVAPLZ FOR AUFK-VAPLZ,
                  SAUART FOR AUFK-AUART.
  "SBWART FOR BWART,
  "SKOSTV FOR KOSTV
  PARAMETERS SBEGRU TYPE EQUI-BEGRU AS LISTBOX VISIBLE LENGTH 25.
  SELECTION-SCREEN END OF BLOCK B1.
  TYPES:BEGIN OF TS_AFIH,
          AUART TYPE AUART,
          AUFNR TYPE AUFNR,
          EQUNR TYPE EQUNR,
          EQKTU TYPE EQKTU,
          TPLNR TYPE TPLNR,
          MATNR TYPE RESB-MATNR,
          MAKTX TYPE MAKTX,
          ENMNG TYPE ENMNG,
          VERPR TYPE MBEW-VERPR,
          ENWRT TYPE ENWRT,
          VORNA TYPE VORNA,
          NACHN TYPE NACHN,
          INGPR TYPE AFIH-INGPR,
        END OF TS_AFIH.
  DATA: GT_AFIH TYPE TABLE OF TS_AFIH,
        LS_AFIH TYPE TS_AFIH.
  DATA: O_ALV TYPE REF TO CL_SALV_TABLE.
  DATA: LX_MSG TYPE REF TO CX_SALV_MSG.
*****************************************************************
START-OF-SELECTION.
  PERFORM GET_DATA.
  PERFORM FILL_ALV.
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       To get all data from defined tables in fs.
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .
  IF SEQUNR IS NOT INITIAL
    OR STPLNR IS NOT INITIAL
    OR SVAPLZ IS NOT INITIAL
    OR SAUART IS NOT INITIAL.
    SELECT B~AUART B~AUFNR A~EQUNR E~EQKTU I~TPLNR R~MATNR M~MAKTX R~ENMNG W~VERPR R~ENWRT P~VORNA P~NACHN A~INGPR FROM AUFK AS B
      INNER JOIN AFIH AS A ON A~AUFNR = B~AUFNR
      INNER JOIN VIAUFKS AS V ON V~AUFNR = B~AUFNR
      INNER JOIN IHPA AS H ON H~OBJNR = B~OBJNR
      INNER JOIN ILOA AS I ON I~ILOAN = V~ILOAN
      INNER JOIN EQKT AS E ON E~EQUNR = A~EQUNR AND E~SPRAS = 'E'
      INNER JOIN RESB AS R ON R~AUFNR = B~AUFNR
      INNER JOIN MBEW as W on W~MATNR = R~MATNR
      INNER JOIN PA0002 as P on P~PERNR = H~PARNR
      INNER JOIN MAKT AS M ON M~MATNR = R~MATNR AND M~SPRAS = 'E' INTO TABLE GT_AFIH UP TO 100 ROWS WHERE A~EQUNR IN SEQUNR
      AND B~AUART in SAUART
      and I~TPLNR in STPLNR
      and b~VAPLZ in svaplz.
  ENDIF.

ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  FILL_ALV
*&---------------------------------------------------------------------*
*       "To display all collected data in alv format
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM FILL_ALV .

  TRY.
      CL_SALV_TABLE=>FACTORY(
        IMPORTING
          R_SALV_TABLE = O_ALV
        CHANGING
          T_TABLE      = GT_AFIH ).
    CATCH CX_SALV_MSG INTO LX_MSG.
  ENDTRY.
  O_ALV->DISPLAY( ).

ENDFORM.
3 REPLIES 3

Sandra_Rossi
Active Contributor

Could you explain what is "less data", i.e. provide an example of what you get, and what you expect.

raymond_giuseppi
Active Contributor
0 Kudos
  • Perform some search on INNER vs (LEFT) OUTER join?
  • Look at view VIAUFKS definition (SE11) as it already contains some tables of your statement...

matt
Active Contributor
0 Kudos

Don't use FORM- It's been obsolete for years.