Ir para conteúdo
Fórum Script Brasil

vitorm07

Membros
  • Total de itens

    3
  • Registro em

  • Última visita

Tudo que vitorm07 postou

  1. Estou precisando de ajuda com a Query abaixo, pois sem o "Sum" a consulta está me retornando os valores corretos, porém sem agrupar os itens com o mesmo código, conforme resultado abaixo. Código | Descrição | Un | CódParceiro | Nome_do_Parceiro | Qtd Neg | Valor_Total 475 Limpador LT 35 Teste 15 236,25 475 Limpador LT 35 Teste 20 315 Porém o resultado deveria ser: Código | Descrição | Un | CódParceiro | Nome_do_Parceiro | Qtd Neg | Valor_Total 475 Limpador LT 35 Teste 35 521,25 SELECT DISTINCTITE.CODPROD As "Codigo_do_Produto",PRO.DESCRPROD As "DescProdutos",PRO.CODVOL As "Un",CAB.CODPARC As "CódParceiro",PAR.NOMEPARC As "Nome_do_Parceiro",(ITE.QTDNEG* ((CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END))) As "QtdNeg",(ITE.VLRUNIT * ITE.QTDNEG) As "Valor_Total"FROMTGFCAB CAB,TGFPAR PAR,TGFTOP TPO,TGFITE ITE,TGFPRO PROWHERECAB.CODTIPOPER IN (3200, 36)AND CAB.NUNOTA = ITE.NUNOTAAND ITE.CODPROD = PRO.CODPRODAND CAB.CODPARC = PAR.CODPARCAND (( TPO.TIPMOV = 'V' OR TPO.TIPMOV = 'D')AND ( CAB.STATUSNOTA = 'L')AND ( CAB.DTENTSAI >='01/07/2020')AND ( CAB.DTENTSAI <='31/07/2020')AND (CAB.CODPARC = 35))GROUP BY "QtdNeg", ITE.VLRUNIT, ITE.CODPROD, PRO.DESCRPROD,PRO.CODVOL, CAB.TIPMOV, CAB.CODPARC, PAR.NOMEPARCORDER BY ITE.CODPROD ASC Tentei colocar "Sum" para somar a "QtdNeg" e o "Valor_Total", retirando da cláusula group by, ele até chegar a agrupar porém desta forma a consulta resulta nos valores abaixo: Código | Descrição | Un | CódParceiro | Nome_do_Parceiro | Qtd Neg | Valor_Total 475 Limpador LT 35 Teste 1730 273420 SELECT DISTINCT ITE.CODPROD As "Codigo_do_Produto", PRO.DESCRPROD As "DescProdutos", PRO.CODVOL As "Un", CAB.CODPARC As "CódParceiro", PAR.NOMEPARC As "Nome_do_Parceiro", SUM(ITE.QTDNEG* ((CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END))) As "QtdNeg", SUM(ITE.VLRUNIT * ITE.QTDNEG) As "Valor_Total" FROM TGFCAB CAB, TGFPAR PAR, TGFTOP TPO, TGFITE ITE, TGFPRO PRO WHERE CAB.CODTIPOPER IN (3200, 36) AND CAB.NUNOTA = ITE.NUNOTA AND ITE.CODPROD = PRO.CODPROD AND CAB.CODPARC = PAR.CODPARC AND (( TPO.TIPMOV = 'V' OR TPO.TIPMOV = 'D') AND ( CAB.STATUSNOTA = 'L') AND ( CAB.DTENTSAI >='01/07/2020') AND ( CAB.DTENTSAI <='31/07/2020') AND (CAB.CODPARC = 35)) GROUP BY ITE.CODPROD, PRO.DESCRPROD,PRO.CODVOL, CAB.TIPMOV, CAB.CODPARC, PAR.NOMEPARC ORDER BY ITE.CODPROD ASC
  2. SELECT DISTINCT PRO.CODPROD As "CódProduto", PRO.DESCRPROD As "Descrição_Produto", PRO.CODVOL As "Unidade", (EST.ESTOQUE) As "Estoque", EST.CODLOCAL, PRO.ESTMIN, (PRO.ESTMIN - ESTOQUE) As 'Sugestão de Compra' FROM TGFPRO PRO, TGFEST EST, TGFLOC LOC WHERE EST.CODLOCAL = 102 AND EST.CODPROD = PRO.CODPROD AND PRO.CODPROD = EST.CODPROD AND (( EST.ESTOQUE <> 0)) AND ((PRO.ESTMIN - ESTOQUE) > 0) GROUP BY EST.ESTOQUE, PRO.CODPROD, PRO.DESCRPROD, PRO.CODVOL, EST.CODLOCAL, PRO.ESTMIN ORDER BY PRO.CODPROD Boa noite, preciso de ajuda com a Query abaixo, os resultados não estão sendo agrupados, por exemplo, tenho dois lotes em estoque de um produto de código 16, eu precisava que as quantidades dos lotes fossem somadas para que fosse possível comparar com o estoque mínimo desse produto e disparar uma solicitação de compras. Exemplo do que está ocorrendo Código do produto | Estoque Atual | Estoque Minimo | Sugestão de Compra 16 10 20 10 16 5 20 15 O que deveria ocorrer é: Código do produto | Estoque Atual | Estoque Minimo | Sugestão de Compra 16 15 20 5 SELECT DISTINCT PRO.CODPROD As "CódProduto", PRO.DESCRPROD As "Descrição_Produto", PRO.CODVOL As "Unidade", SUM(EST.ESTOQUE) As "Estoque", PRO.ESTMIN As "Minimo", SUM(PRO.ESTMIN - ESTOQUE) As 'Sugestão de Compra' FROM TGFPRO PRO, TGFEST EST WHERE EST.CODLOCAL = 102 AND EST.CODPROD = PRO.CODPROD AND PRO.CODPROD = EST.CODPROD AND (( EST.ESTOQUE > 0)) AND ((PRO.ESTMIN - ESTOQUE) > 0) GROUP BY PRO.CODPROD, EST.CODPROD, PRO.ESTMIN, PRO.DESCRPROD, PRO.CODVOL, EST.ESTOQUE Obrigado
  3. Bom dia, estou precisando de uma ajuda na query abaixo, pois em alguns casos, por exemplo quando existe 1 item que foi selecionado duas vezes no mesmo pedido com o mesmo lote, o agrupamento mínimo (PRO.AGRUPMIN) está sendo somado no momento da divisão do (ITEM.QTDNEG/PRO.AGRUPMIN) AS EMBALAGENS na linha 6, retornando uma quantidade incorreta de embalagens para separação. Por exemplo, se eu tenho o produto de código 100 com o lote 123 selecionado duas vezes no mesmo pedido, com quantidade 20 em cada pedido e o agrupamento mínimo é 5, o resultado deveria ser: Produto 100| Lote 123| Quantidade 40| Embalagens 8 (40/5) Porém, o que está acontecendo é: Produto 100|Lote 123| Quantidade 40| Embalagens 4 (40/(5+5)) SELECT DISTINCT PAR.NOMEPARC, CAB.NUNOTA, ITE.QTDNEG, AD_LAUDO, PRO.AGRUPMIN, (ITE.QTDNEG/PRO.AGRUPMIN) AS EMBALAGENS, CAB.ORDEMCARGA AS "N_Ordem_de_Carga", ORD.PESOMAX AS "Peso_Max", ORD.CODVEICULO AS "Cod_Veiculo_da_OC", VEI.MARCAMODELO AS "Modelo_Veiculo_OC", VEI.PLACA AS "Placa_OC", VEI.PESOMAX AS "Peso_Max_Veiculo_2", TPO.DESCROPER AS "NOMETOP", ITE.CODPROD AS "Codigo_do_Produto", PRO.DESCRPROD AS "Descrição_do_Produto", ITE.CONTROLE AS "Controle", PRO.CODVOL AS "Un", PRO.PESOBRUTO AS "Peso_Bruto", SUM (ITE.QTDNEG * (CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END)) AS "SOMA_QUANTIDADE_NEGOCIADA", SUM (ITE.QTDNEG * (CASE WHEN CAB.TIPMOV = 'D' THEN -1 ELSE 1 END)) * PRO.PESOBRUTO AS "PESO_TOTAL_ITEM" FROM TGFCAB /*CC (Empresa, CODEMP) (Centro de Resultado, CODCENCUS) (Natureza, CODNAT) (Projeto, CODPROJ) (Parceiro, CODPARC) (TOP, CODTIPOPER) CC*/ CAB, TGFORD /*CC (Empresa, CODEMP) CC*/ ORD, TGFVEI VEI, TGFITE /*CC (Empresa, CODEMP) (Local, CODLOCALORIG) CC*/ ITE, TGFPRO /*CC (Centro de Resultado, CODCENCUS) (Natureza, CODNAT) (Projeto, CODPROJ) (Parceiro, CODPARCFORN) (Produto, CODPROD) (Grupo de Produto, CODGRUPOPROD) CC*/ PRO, TGFTOP TPO, TGFPAR PAR WHERE ITE.NUNOTA = CAB.NUNOTA AND PAR.CODPARC = CAB.CODPARC -- AND CAB.CODEMP = ORD.CODEMP AND ORD.CODVEICULO = VEI.CODVEICULO AND ITE.CODPROD = PRO.CODPROD AND CAB.CODTIPOPER = TPO.CODTIPOPER AND CAB.DHTIPOPER = TPO.DHALTER AND CAB.ORDEMCARGA = ORD.ORDEMCARGA AND ((CAB.ORDEMCARGA=$P{P0})) AND PRO.USOPROD <> 'S' AND TPO.TIPMOV = 'P' AND TPO.CODTIPOPER NOT IN (123,129,121,127,39,130,3200,120,126) GROUP BY PAR.NOMEPARC, CAB.NUNOTA, CAB.ORDEMCARGA, ORD.PESOMAX, ORD.CODVEICULO, VEI.MARCAMODELO, ITE.QTDNEG, VEI.PLACA, VEI.PESOMAX, ITE.CODPROD, PRO.DESCRPROD, TPO.DESCROPER, ITE.CONTROLE, PRO.CODVOL, PRO.PESOBRUTO, PRO.AGRUPMIN, AD_LAUDO ORDER BY CAB.NUNOTA
×
×
  • Criar Novo...