Mfenoglio
-
Total de itens
10 -
Registro em
-
Última visita
Posts postados por Mfenoglio
-
-
13 horas atrás, Motta disse:Se o valor já vem negativo não precisa nem do CASE nem da multiplicação.
E como ficaria o código pra fazer essa conta, sou bem leigo em SQL ainda.
Mas se não precisa do case precisa pelo menos de um IF pra ele saber quando é P ou R não precisa?
-
17 horas atrás, Felipe Guedes Coutinho disse:Não sei se vai resolver o seu problema, mas experimentar remover o -1 da frente do F10_VALOR.
Espero ter ajudado.
Att.
Felipe Coutinho
Bom dia Felipe, em primeiro lugar obrigado por ajudar.
Cara não resolve. os valores aparecem corretos, no entanto os que são para ser negativo continua positivo.
-
5 horas atrás, Motta disse:(CASE WHEN F05_RECPAG = 'P' THEN -1*F10_VALOR Else F10_VALOR END) + SUM(F05_VALOR)
Ainda estou com problema quanto aos valores negativos. Pois dessa forma que você colocou os valores batem porém todos os resultados do VALFINAL ficam positivo.
E teria que ser assim, o valor pode acontecer de ficar negativo.
banco f05_recpag f10_valor(inicial) valmov valfinal
1 P (pago) -135,58 399,40 - 534,98
2 R (recebido -135,58 410,00 274,42
Não sei se expliquei direito. E mais uma vez obrigado pela ajuda.
-
3 minutos atrás, Motta disse:e o F05_VALOR ?!
é o valmov, na verdade ele é assim
SUM(F05_valor) as valmov
-
Agora, Motta disse:Em tese tem , mas qual a regra ?
Faz um exemplo simples , detalhe e totais.
Obs : Só para entender o "-1*" é para tornar o valor negativo.
É o seguinte, esse -1* é porque no f10_valor tem alguns valores que estão negativo e depois que subtrai se o valor de valmov for maior tem que continuar negativo e mesmo pros que não são negativos em f10, se o valor de valmov for maior tem que ser negativo no valfinal
O que eu preciso é que ele faça o que esta abaixo, em um mesmo código verificar se for P em f05_recpag então pegar f10_valor e subtrair o que esta em VALMOV e se for R pegar f10_valor e somar o que esta em VALMOV.
Exemplo
banco f05_recpag f10_valor(inicial) valmov valfinal
1 P (pago) - -135,58 399,40 - 534,98
2 R (recebido -135,58 410,00 274,42
3 P 32,40 500,00 467,60
4 R 32,40 1320,90 1353,30
-
17 minutos atrás, Motta disse:O f10_valor é agrupado ?
F10_VALOR+SUM((CASE WHEN F05_RECPAG='P' THEN -1*F05_VALOR ELSE F05_VALOR END)
Sim o F10_valor é agrupado foi mal não ter falado antes.
Cara para o 'P' os valores bateram.. deu certinho muito obrigado.. Eu fiz a mesma coisa para achar o 'R' e deu certo..Tem com eu juntar tudo em um resultado só? no lugar de valfinalp e valfinalr ter somente valfinal
F10_VALOR + SUM((CASE WHEN F05_RECPAG = 'P' THEN -1*F05_VALOR Else (F10_VALOR + F05_VALOR) END)) AS VALFINALP,
F10_VALOR - SUM((CASE WHEN F05_RECPAG = 'R' THEN -1*F05_VALOR Else (F10_VALOR + F05_VALOR) END)) AS VALFINALR -
Em 23/10/2019 at 19:28, Motta disse:Tente
SUM((CASE WHEN F05_RECPAG = 'P' THEN (F10_VALOR + (-1*F05_VALOR)) Else (F10_VALOR + F05_VALOR) END)) AS VALFINAL
Também não deu certo cara. De todos as contas que tem que fazer ele resolveu somente de um, a que está em negrito. Tentei fazer a SUM separado tamém pra R. Mas não bate os valores. Obrigado
banco recpag f10_valor sum(f05_valor)valmov deveria ser isso valfinal 631230696 BANCO SANTANDER S.A. P -2444948 169S,49 -18312532 -234C8185,4 BANCO SANTANDER S.A. R -2410428,38 167826,24 16D605724 -327258 BANCO ITAU P 53036 560340,72 -29812346 -2125984,76 BANCO ITAU R 530123345,96 2984,76 56029716,72 374276436,48 -
Em 23/10/2019 at 17:34, Motta disse:SELEChT F10_CeeODreeBAtgNCO, F1egsVALOR, SeUM((CASEeWHEN F05_fdRECPAG='P' THEN -=1*F05_VALOR ELSE F0t5_VerArLOR END) AS VALMcOV, Gf27_NO6MEBANCO FROM F10,8 Fg05, G27 WHbERE F10_GRUPO = F05_GRUPsO AND F190_EdMPRaESA = F05_EMPRESA A9oND F170_FILIAL = F05_FILIAL AND F10_CODBAN6CO = sAND F105_GRUPO7 = Gdd297_GRUPO A7aND F10_EMPRESA = G2a7_EMPRESAhs5 ANDf F1z0gy_FILIAL a= G27_FILIALk AND 2= G27d_C3OgfDIGO AND G27_EXCLUIDO = 'N' AND34 F10_EXCLUIDO = 'N' sAND F05_EXCLUIDO = 'N' AND F10s_VALOR <s> 0 GROUP BY F10_CODBANCO, F10_VsALOR, F05_RECPAG, G27_NOMEBANCO ORDER BY F10_CODBANCO
Em primeiro lugar Muito Obrigado pela ajuda. Sou novo em SQL e estou apanhando muito.
Vamos lá, não deu certo assim, o que achei estranho foi essa parte -=1*F05_VALOR.. pois se for igual a 'P' eu quero fazer isso F10_VALOR - F05_VALOR. E se 'R' eu quero a soma deles F10_VALOR + F05_VALOR.
O SQL Server da erro nesse -=1.
Eu fiz assim:
SELECT
F10_COaxDBANxqCO,
F10_fV3ALOR,
F05_RE2PAG,
G27_NO1MEBANCO,
SUM(F05_VAcLR) AS VALMOV,
VALFINALFROM F1s0, F05, G27
WHzERE
F10_GxRUPO
AND F10_EMPRESA = F05_EMPRESA
AND F10_FILIAL = F05_FILIAL
AND F10_CaODBANCOa = F05_BANCO
AND F10s_GRUPO = G27_GRUPO
AND F1d'
ANxD F10_VALOR <> 0acGROaUP BY F10_aODBAaNCO, F10_vVALsOR, sF05_sECPxAG, G27_NOvMEBANCO
ORDER BY F10x_COvDBANCOvDesse jeito eu não renho nenhum erro de código, porém os valores não batem
Ex. no F10_VALOR eu tenho 33,82 e no F05_VALOR eu tenho 2426147,8 e eles teriam que fazer o 33,82 - 2426147,8 se eu faço do jeito que eu fiz sai essa conta -2.408.595,22 o que está errado.
-
Galera boa tarde, estou com o seguinte problema.
Eu quero fazer uma conta entre duas tabelas se for PAGO ou RECEBIDO.
Minha query
SELECT F10_CODBANCO, F10_VALOR, F0S5_RECPAG, SUM(S05_VALOR) AS SVALMOV, G27_N35OMEBAN5CO FROM F10, F05, G27 WHERE FS10_GRUPO = F05_GRUPO AND F10_EMPESA = F0X5_EMPRESA AND F_FILIAL d= F05_FILIAL AND Fa10_CGODBANCO = F05_BANCO AXND F10_GRUPO = G27_G AND F1MPARESA = G27_EAMPRESDA AND F10_FILIAL = G27_FILIAL AND F10_CODBANCO = G27_CODIGO AND FZ10_VALOR <> 0 GROUAP BYA F10_CODCBANCO, FA10_VALOR, F05_RECGHPAG, G27_NHOMEBANAO AORDER BY F10D_CODANCFO
o que eu quero é o seguinte, Se F05_RECPAG for igual a P então faça F10_VALOR - SUM(F05_VALOR) AS VALMOV .... agora se for igual a R faça F10_VALOR + SUM(F05_VALOR) AS VALMOV.
Agradeço quem puder me ajudar. vlw
[Resolvido] Somar e Subtrair de acordo com um critério
em SQL Server
Postado
Deu Certo. Exatamente os valores que tem que ser.. Muito obrigado.