Ir para conteúdo
Fórum Script Brasil
  • 0

Select com soma de dados agrupados


inavoig.17

Pergunta

Olá, A minha situação é a seguinte:

minhas tabelas e os valores:

TB_PEDIDO: int id_pedido

40

TB_ITEM_PEDIDO: int id_pedido, quantidade_pedida, quantidade_recebida, id_item

40 30 0 1234

tb_lote: int id_pedido, id_item, quantidade_lote

40 1234 1

Eu posso encerrar um item no pedido de 2 formas:

- Recebendo Pelo pedido mesmo.. na tabela do item na quantidade recebida

- Recebendo pelo lote na quantidade lote

Nesse Caso os dados Corretos são:

Unidade 2: quantidade pendente 0 (pois a quantidade recebida em lote para o pedido supera a pedida)

Porem no Meu Select Esta Trazendo 29.

O problema esta no select que traz a quantidade pendente em itens que tem dados no lote.

Segue o Select:

==============================================================================================================

SELECT     
            I.ID_PRODU_REFER,                                   
            SUM(case I.QT_PEDIDO - ITL.QT_ITEM - I.QT_ATEND_INFORM < 0 when true then 0 else I.QT_PEDIDO - ITL.QT_ITEM - I.QT_ATEND_INFORM end) as qt_pendente_com_lote
            
                         /*
                            O PROBLEMA É NESTA SOMA QUE TRAZ A QUANTIDADE PENDENTE DOS ITENS QUE TEM RELACAO NO LOTE DE ENTRADA, QT_PENDENTE_COMPRA COM LOTE DEVERIA SER 0
                            POIS A CONTA SERIA: 30 - 61 - 0  = -31 (QUANDO NUMERO É NEGATIVO já DEIXO COMO 0)
                            MAS ESSE SUM ESTA FUNCIONANDO ASSIM: 30 - 60 - 0 = -30 (AQUI FICA 0) E 30 - 1 - 0 = 29, NO RESULTADO FINAL = 0 + 29 => 29, 
                            OS LOTES ESTAO SENDO SOMADOS SEPARADOS E DEPOIS SOMA O RESULTADO, PRECISO QUE SOMA TODOS VALORES DA COLUNA PRIMEIRO, PARA DEPOIS FAZER A SUBTRAÇÃO
            */
        FROM    
            
            TB_PEDIDO_COMPRA AS P
        LEFT JOIN
            TB_ITEM_PEDIDO_COMPRA AS I
        ON
            I.ID_PEDIDO_COMPRA = P.ID_PEDIDO_COMPRA
        LEFT JOIN
            TB_ITEM_LOTE_ENTR AS ITL
        ON
            ITL.ID_PEDIDO_COMPRA = I.ID_PEDIDO_COMPRA
        AND
            ITL.ID_PRODU_REFER = I.ID_PRODU_REFER            
        LEFT JOIN 
             TB_PRODU_REFER AS PR
        ON 
            PR.ID_PRODU_REFER = 4105
WHERE
            i.ID_PRODU_REFER = 4105
        GROUP BY
            I.ID_PRODU_REFER

========================================================================================================

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...