- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 11 anos, 3 meses atrás por mpungan.
-
AutorPosts
-
9 de agosto de 2013 às 5:40 pm #105736mpunganParticipante
1 – SELECT BASE.QTD_ITENS,
WNEI.*
FROM (SELECT WNEI.IDNFENTRADA,
WNEI.NUMSEQITEM,
COUNT(*) AS QTD_ITENS
FROM GL_PROTOCOLOCALIBRACAONOTA PCN, –> tabela
GL_NOTAFISCAL N, –> tabela
GL_PROTOCOLOCALIBRACAO PC, –> tabela
VW_PUC_NF_ENTRADA_ITEM WNEI –> Isso é uma view
WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
AND WNEI.IDNFENTRADA = N.IDNFENTRADA
AND N.IDNOTAFISCAL = 1187
GROUP BY WNEI.IDNFENTRADA,
WNEI.NUMSEQITEM) BASE,
VW_PUC_NF_ENTRADA_ITEM WNEI
WHERE WNEI.NUMSEQITEM = BASE.NUMSEQITEM
AND WNEI.IDNFENTRADA = BASE.IDNFENTRADA;2 – SELECT WNEI.IDNFENTRADA,
WNEI.NUMSEQITEM,
COUNT(*) AS QTD_ITENS
FROM GL_PROTOCOLOCALIBRACAONOTA PCN,
GL_NOTAFISCAL N,
GL_PROTOCOLOCALIBRACAO PC,
VW_PUC_NF_ENTRADA_ITEM WNEI
WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
AND WNEI.IDNFENTRADA = N.IDNFENTRADA
AND N.IDNOTAFISCAL = 1187
GROUP BY WNEI.IDNFENTRADA,
WNEI.NUMSEQITEMPessoal esse select acima esta muito demorado, alguém poderia me auxiliar a tentar melhorar esse select, se executar somente script número 2 é rápido, mas quando executo todo o código script 1, fica muito lento. Segue o plano de execução em anexo.
9 de agosto de 2013 às 10:11 pm #105740FernandaAcParticipante@mpungan,
Tudo bem?
Experimenta usar o comando OVER(PARTITION BY PC.NUMSEQITEM) e faça um teste, como no exemplo abaixo.
Essa é uma alternativa, veja se ajuda e se atende ao que vc está precisando que retorne na query (pelo que entendi é esse o objetivo)!SELECT COUNT() OVER(PARTITION BY WNEI.IDNFENTRADA, WNEI.NUMSEQITEM) AS QTD_ITENS,
WNEI.
FROM GL_PROTOCOLOCALIBRACAONOTA PCN,
GL_NOTAFISCAL N,
GL_PROTOCOLOCALIBRACAO PC,
VW_PUC_NF_ENTRADA_ITEM WNEI
WHERE PC.IDPROTOCOLOCALIBRACAO = PCN.IDPROTOCOLOCALIBRACAO
AND N.IDNOTAFISCAL = PCN.IDNOTAFISCAL
AND WNEI.NUMSEQITEM = PC.NUMSEQITEM
AND WNEI.IDNFENTRADA = N.IDNFENTRADA
AND N.IDNOTAFISCAL = 118712 de agosto de 2013 às 5:43 pm #105742mpunganParticipanteValeu pela força, o select melhorou muito com essa função analítica. Muito obrigado.
Att.
Mpungan
-
AutorPosts
- Você deve fazer login para responder a este tópico.