|
#1
|
|||
|
|||
Duda con select
Hola gente! tengo una duda existencial.. puede ir dentro de un select un inner join y un for all entries como el siguiente?
SELECT a~vbeln a~fkart a~waerk a~vkorg a~vtweg b~posnr b~pstyv b~werks b~wavwr b~kzwi1 b~kzwi3 INTO TABLE it_vbrk FROM vbrk AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln FOR ALL ENTRIES IN it_s900 WHERE a~vbeln EQ it_s900-vbeln AND a~vkorg IN s_vkorg AND a~vtweg IN s_vtweg AND a~bukrs EQ p_bukrs AND b~pstyv IN s_pstyv. es performante esto? Desde ya se los agradezco!! |
#2
|
||||
|
||||
Yo pienso que si, en ese caso estas consultando con cabecera y detalle (VBRK y VBRP), y con respecto al FOR ALL ENTRIES creo q otra opcion en vez de la sentencia es realizar un LOOP y barrer con cada registro ... entre esos 2 mas performance es el FOR ALL ENTRIES
__________________
David Carballido Córdova |
#3
|
||||
|
||||
Es correcto lo mejor opcion lo que tratas de hacer ya que estas ahorrandote el barrido de la tabla interna.
__________________
01010000 01001010 10011000 10100001 De Byte a Beat. |
#4
|
|||
|
|||
joya! voy en buen camino entonces!!
Ahora si pongo esto.. SELECT spmon sptag vbeln pkunag pkunre matnr fkimg INTO TABLE it_s900 FROM s900 FOR ALL ENTRIES IN it_ausp WHERE matnr EQ it_ausp-matnr AND sptag IN s_sptag AND fkart IN s_fkart AND pkunag IN s_pkunag AND pkunre IN s_pkunre AND waerk EQ p_waers. IF sy-subrc EQ 0. sort it_s900 by vbeln. SELECT a~vbeln a~fkart a~waerk a~vkorg a~vtweg b~posnr b~pstyv b~werks b~wavwr b~kzwi1 b~kzwi3 INTO TABLE it_vbrk FROM ( vbrk AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln ) FOR ALL ENTRIES IN it_s900 WHERE a~vbeln EQ it_s900-vbeln AND a~vkorg IN s_vkorg AND a~vtweg IN s_vtweg AND a~bukrs EQ p_bukrs AND b~pstyv IN s_pstyv. sique siendo performante?? Úlima edición por mystic_soul fecha: 11/04/08 a las 18:17:45. |
#5
|
|||
|
|||
Hola gente! todavia sigo sin poder sacarme la duda de este select...
SELECT spmon sptag vbeln pkunag pkunre matnr fkimg INTO TABLE it_s900 FROM s900 FOR ALL ENTRIES IN it_ausp WHERE matnr EQ it_ausp-matnr AND sptag IN s_sptag AND fkart IN s_fkart AND pkunag IN s_pkunag AND pkunre IN s_pkunre AND waerk EQ p_waers. IF sy-subrc EQ 0. sort it_s900 by vbeln. SELECT a~vbeln a~fkart a~waerk a~vkorg a~vtweg b~posnr b~pstyv b~werks b~wavwr b~kzwi1 b~kzwi3 INTO TABLE it_vbrk FROM ( vbrk AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln ) FOR ALL ENTRIES IN it_s900 WHERE a~vbeln EQ it_s900-vbeln AND a~vkorg IN s_vkorg AND a~vtweg IN s_vtweg AND a~bukrs EQ p_bukrs AND b~pstyv IN s_pstyv. no se si es performante.. o esto es mas performante?? :S SELECT b~werks c~vkorg c~vtweg a~pkunag a~pkunre a~spmon a~matnr c~fkart b~pstyv a~fkimg b~wavwr c~waerk b~kzwi3 b~kzwi1 a~sptag b~vbeln b~posnr INTO TABLE it_s900 FROM s900 AS a INNER JOIN vbrp AS b ON a~vbeln = b~vbeln AND a~posnr = b~posnr INNER JOIN vbrk AS c ON b~vbeln = c~vbeln FOR ALL ENTRIES IN it_ausp WHERE a~matnr EQ it_ausp-matnr AND a~pkunag IN s_pkunag AND a~pkunre IN s_pkunre AND a~fkart IN s_fkart AND a~waerk EQ p_waers AND a~sptag IN s_sptag AND b~pstyv IN s_pstyv AND c~vkorg IN s_vkorg AND c~vtweg IN s_vtweg AND c~bukrs EQ p_bukrs. IF sy-subrc EQ 0. SORT it_s900 BY werks vkorg vtweg pkunag pkunre spmon matnr fkart pstyv. ENDIF. desde ya se los agradezco!!! Saludos! Úlima edición por mystic_soul fecha: 02/05/08 a las 13:10:55. |
#6
|
|||
|
|||
Desde la transaccion SE30 puedes hacer mediciones para ver que codigo es mas optimo
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|