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
Pergunta
inavoig.17
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:
==============================================================================================================
========================================================================================================
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.