Avalados por :
Olá Especialistas,
Como posso melhorar esta consulta select? Consultei a Nota OSS 185530 e descobri que podemos usar a tabela VRPMA para obter um melhor desempenho, mas minha preocupação é que não há um campo werks em VRPMA. Portanto, não poderei consultar em VBRP usando os campos matnr e werks. Sei que para all entries é melhor usar join. Mas aqui tenho que me contentar com isso, já que i_mara passou por muitas modificações antes de chegar a esta declaração select.
SELECT vbrp~matnr
vbrp~werks
vbrp~ntgew
vbrp~gewei
vbrk~fkdat
vbrk~vbtyp
vbrk~vbeln
vbrk~fktyp
INTO CORRESPONDING FIELDS OF TABLE i_vbrp
FROM ( vbrk INNER JOIN vbrp
ON vbrk~vbeln = vbrp~vbeln ) FOR ALL ENTRIES IN I_MARA
WHERE vbrk~fkdat GE w_pfrom_date
AND vbrk~fkdat LE w_cto_date
AND vbrk~vkorg IN s_vkorg
AND vbrk~rfbsk = 'C' "O documento de contabilização foi criado
AND vbrk~fkart NE 'IV' "Faturamento intercompanhia
AND vbrk~fkart NE 'IG' "Nota de crédito interna
AND vbrp~matnr = i_mara-matnr
AND vbrp~werks = i_mara-werks.
Por favor, aconselhe-me sobre como refinar esta declaração select.
Cumprimentos,
Desculpe, quis dizer ' Sei que para todas as postagens não é melhor se juntar '.
SEI que para todos os registros é melhor unir-se
øErro de digitação?
Suponho que já leu 185530 - Desempenho: Desenvolvimentos de clientes em SD .
Para acessar os elementos de fatura VBRP com material MATNR, utilize a tabela VRPMA mesmo que não haja campo WERKS, você pode manter o filtro em VBRP.
SELECIONAR vbrp~matnr
vbrp~werks
vbrp~ntgew
vbrp~gewei
vbrk~fkdat
vbrk~vbtyp
vbrk~vbeln
vbrk~fktyp
CORRESPONDENTE COM CAMPOS DE TABELA i_vbrp
DE vrpma
UNIR vbrp
EM vbrp~vbeln = vrpma~vbeln
E vbrp~posnr = vrpma~posnr
UNIR vbrk
EM vbrk~vbeln = vbrp~vbeln
PARA TODOS os registros EM i_mara
ONDE vrpma~vkorg EM s_vkorg
E vrpma~matnr = i_mara-matnr
E vbrk~fkdat MAIOR OU IGUAL A w_pfrom_date
E vbrk~fkdat MENOR OU IGUAL A w_cto_date
E vbrk~rfbsk = 'C' "Documento de contabilização foi criado
E vbrk~fkart DIFERENTE DE 'IV' "Faturamento intercompanhia
E vbrk~fkart DIFERENTE DE 'IG' "Nota de crédito interna
E vbrp~werks = i_mara-werks.
Eu sei que para todas as entradas é melhor do que join
erro de digitação ?
Suponho que você já leu 185530 - Performance: Customer developments in SD .
Para acessar os itens de fatura VBRP com material MATNR, use a tabela VRPMA mesmo se não houver campo WERKS, você pode manter o filtro em VBRP.
SELECIONAR vbrp~matnr
vbrp~werks
vbrp~ntgew
vbrp~gewei
vbrk~fkdat
vbrk~vbtyp
vbrk~vbeln
vbrk~fktyp
INTO CORRESPONDENTE CAMPOS DE TABELA i_vbrp
DE vrpma
JOIN vbrp
ON vbrp~vbeln = vrpma~vbeln
E vbrp~posnr = vrpma~posnr
JOIN vbrk
ON vbrk~vbeln = vbrp~vbeln
PARA TODAS AS ENTRADAS EM i_mara
ONDE vrpma~vkorg NO s_vkorg
E vrpma~matnr = i_mara-matnr
E vbrk~fkdat GE w_pfrom_date
E vbrk~fkdat LE w_cto_date
E vbrk~rfbsk = 'C' "O documento de lançamento foi criado
E vbrk~fkart NE 'IV' "Faturamento interno
E vbrk~fkart NE 'IG' "Nota de crédito interna
E vbrp~werks = i_mara-werks.
Para uma otimização adicional, existem campos de organização de vendas como VKORG que possuem um link para os campos WERKS (tabela TVKO), então você pode converter a tabela i_mara para adicionar VKORG (um registro por VKORG que está vinculado a WERK no i_mara original?) - mas a manutenção do relatório...
contacto@primeinstitute.com
(+51) 1641 9379
(+57) 1489 6964
© 2024 Copyright. Todos los derechos reservados.
Desarrollado por Prime Institute