on 04-29-2016 7:51 PM
Olá pessoal,
Estou passando pela seguinte situação: Desenvolvi um relatório em Crystal que faz uma média da data da entrega do pedido de compras (DocDueDate) com a data da entrada da nota fiscal (DocDate), porém preciso calcular uma média entre os dias atrasados x a quantidade de pedidos. Como estou utilizando um agrupamento pois um pedido de compras poderá conter diversas Nf, não estou conseguindo utilizar a soma do Crystal, alguem poderia me ajudar?
Segue query:
SELECT DISTINCT OPOR.DocNum, OPOR.DOCENTRY, OPCH.CardName, PCH1.Quantity, OPOR.DocDate
AS 'Dt Pedido', OPCH.DocDate,
(sbo_cmcouto_teste.dbo.FcnDiasUteis (OPOR.DocDate,OPCH.DocDate) as 'Dias',
OPCH.U_Comprador, PCH1.BaseRef AS 'Pedido', OPOR.DocTotal,
OPCH.DocDate as 'Dt Nota', OPOR.DocDueDate as 'Dt Entrega',
POR1.LineNum, OPOR.BplName
FROM OPCH (NOLOCK)
INNER JOIN PCH1 (NOLOCK) ON OPCH.DOCENTRY = PCH1.DOCENTRY
INNER JOIN OPOR (NOLOCK) ON PCH1.BASEENTRY = OPOR.DOCENTRY
INNER JOIN POR1 (NOLOCK) ON OPOR.DocEntry = POR1.DocEntry
WHERE OPCH.CANCELED = 'N' AND OPOR.CANCELED = 'N'
AND OPOR.DocDate > = '20160401' AND OPOR.DocDate < ='20160429'
GROUP BY OPOR.DocNum, OPOR.DOCENTRY, OPCH.CardName, PCH1.Quantity, OPOR.DocDate,
OPCH.DocDate,
OPCH.U_Comprador, PCH1.BaseRef, OPOR.DocTotal,
OPCH.DocDate, OPOR.DocDueDate,
POR1.LineNum, OPOR.BplName
Att;
Jefferson Maldonado
Bom dia,
achei interessante a ideia do relatório porem fui testar para tentar te ajudar, mas para isso preciso saber do que se trata essa função "sbo_cmcouto_teste.dbo.FcnDiasUteis"?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Bom dia,
Bom fiz o teste aqui e na minha consulta substitui a sua função pela DATEDIFF para testar.
Inicialmente recomendaria colocar no WHARE a seguinte condição:
PCH1.ItemCode = POR1.ItemCode
Bom na minha base todos os pedidos são 1 para 1 mas pelo que entendi tem que agrupar todos os OPOR.DocNum
No crystal vá em INSERIR -> GRUPO selecione o campo correto e clique em ok
Depois va em INSERIR -> RESUMO e selecione o campo DIAS e coloque a forma de calculo como "MEDIA" clique em ok
Acredito que assim vai funcionar como você deseja.
Seguindo nessa mesma logica podemos agrupar primeiro por fornecedor, depois por pedido e fazer media por pedido e media por fornecedor. Eu vou fazer desta forma no relatório que você esta construindo e vou incluir na minha base.
Espero ter ajudado!
Boa tarde Andrew,
Também cheguei a utilizar o DATEDIFF mais para pegar somente os dias úteis ele não funcionou. O Problema é o seguinte? Eu tenho 1 Solicitação de compras que viraram vários pedidos, e por isso na hora de somar ou dar a média o valor não bate, pois o resuma esta somando o valor do grupo e da linha detalhe.
Att,
Jefferson Maldonado
Andrew,
Coloque sim o INNER JOIN da PCH1 e POR1 e também criei o grupo de PN e fiz o resumo por média, os 2 deram o mesmo resultando. A minha conta precisa ser a seguinte: Quantidades de linhas do relatório/somas de dias. Assim que devo pegar a média conforme solicitado. Ex: 68 dias / 7 pedidos= 9,71 já a média do Crystal esta dano 11,6.
Att:
Jefferson Maldonado
Bom dia Jefferson, só posso concluir que sua consulta tem algum problema poderia publicar os dados em CSV? Então depois deste seu ultimo comentário só posso reafirmar que a função que deve utilizar e a Media.
Para pegar os dados em CSV e so executar a consulta no Management Studio, selecionar o resultado, colar em um planilha, salvar e fazer o upload aqui.
User | Count |
---|---|
103 | |
12 | |
11 | |
6 | |
5 | |
4 | |
3 | |
3 | |
3 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.