Autor Tema: Saludos A todos los miembros del foro.  (Leído 4661 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado carlos manuel

  • Novato
  • *
  • Mensajes: 2
    • Ver Perfil
Saludos A todos los miembros del foro.
« en: 18 de Mayo de 2010, 04:03:05 pm »
Saludos a todos  nececito ayuda si les es posible  colaborar conmigo   estoy creando unos reportes  ALV  y tengo  inconvenientes con un INNER JOIN
 en la las tablas   esto es lo que he hecho po rl momento pero  no me da los resultados.

si le es posible  espero su colavoracion.

DATA: BEGIN OF wa,
        vgbel TYPE vbrp-vgbel,
        vbeln TYPE vbrp-vbeln,
        vbelv TYPE vbfa-vbelv,
        vbtyp_n TYPE vbfa-vbtyp_n,
         kunnr type kna1-kunnr,
        tknum TYPE vttk-tknum,
         name1 TYPE kna1-name1,
        /bev1/rpfar1 TYPE vttk-/bev1/rpfar1,
      END OF wa,
      itab LIKE SORTED TABLE OF wa
                WITH UNIQUE KEY vgbel vbelv vbtyp_n vbeln tknum /bev1/rpfar1 .

SELECT  p~vgbel f~vbelv f~vbeln f~vbeln b~tknum b~/bev1/rpfar1 c~kunnr c~name1
  INTO  CORRESPONDING FIELDS OF TABLE itab
  FROM  ( ( ( vbrp AS p
            INNER JOIN vbfa AS f ON p~vgbel = f~vbeln AND
                                    p~vgbel = f~vbelv       )
            INNER JOIN vttk   AS b ON p~vgbel = b~/bev1/rpfar1 AND
                                     f~vbeln = b~tknum  )
            INNER JOIN kna1   AS c ON   b~/bev1/rpfar1 = c~kunnr
                                            )
  WHERE b~/bev1/rpfar1 <> 0 AND
             c~kunnr   <> 0  .

LOOP AT itab INTO wa.
  AT NEW vgbel.
    WRITE: / wa-vgbel, wa-vbeln , wa-vbelv ,wa-vbtyp_n,wa-kunnr ,wa-tknum    .
  ENDAT.
  WRITE / wa-kunnr.
ENDLOOP.

Desconectado abapito

  • Usuario Completo
  • ***
  • Mensajes: 76
    • Ver Perfil
Re: Saludos A todos los miembros del foro.
« Respuesta #1 en: 19 de Mayo de 2010, 04:21:00 pm »
Hola,

No se si será esto que te digo, pero veo algo raro en el INNER que marco de color rojo.


SELECT  p~vgbel f~vbelv f~vbeln f~vbeln b~tknum b~/bev1/rpfar1 c~kunnr c~name1
  INTO  CORRESPONDING FIELDS OF TABLE itab
  FROM  ( ( ( vbrp AS p
            INNER JOIN vbfa AS f ON p~vgbel = f~vbeln AND
                                    p~vgbel = f~vbelv
       )
            INNER JOIN vttk AS b ON p~vgbel = b~/bev1/rpfar1 AND
                                    f~vbeln = b~tknum  )
            INNER JOIN kna1 AS c ON b~/bev1/rpfar1 = c~kunnr
                                            )
  WHERE b~/bev1/rpfar1 <> 0 AND
             c~kunnr   <> 0  .


¿Puede ser que en lugar de un AND, tengas que poner un OR?

... f~vbeln y f~vbelv lo estas igualando al mismo campo p~vgbel.



Un saludo.