none
Inverter sinal antes do cálculo RRS feed

  • Pergunta

  • Olá Pessoal

    Preciso de uma ajuda aqui. Quero fazer um calculo com um determinado valor resultante de um outro cálculo com + ou -. Se resultado do cálculo caso for positivo quero que inverta o sinal em NEGATIVO e se for negativo que inverta em POSITIVO.  A query abaixo está funcionando. Está a fazer a média entre três valores. A última que está a negrito que quero inverter, dependente de cada condição. Alguém me ajude.

    SELECT((SELECT(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P5] = 1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0))-(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P5] = -1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0)))+(SELECT(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P6] = 1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0))-(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P6] = -1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0)))+(SELECT(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P3] = 1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0))-(SELECT ISNULL((ROUND(Convert(decimal(10,0),(SELECT isnull(SUM(N_Pessoas_Servico),0) FROM [COM_ESTABELECIMENTO] 
    WHERE ([P3] = -1) and substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*12.1/ 
    (SELECT isnull(SUM(N_Pessoas_Servico),0)*12.1 As GERAL FROM [COM_ESTABELECIMENTO] 
    WHERE substring(Juncao,1,7) =@ group by substring(Juncao,1,7))*100),0)),0))))/3

    quarta-feira, 25 de janeiro de 2017 12:04

Respostas

  • Bom dia,

    Basta multiplicar o valor desejado por -1, dessa forma o sinal será invertido.


    "A vida é um paraíso, mas os homens não o sabem e não se preocupam em sabê-lo." Fiodor Dostoievski

    quarta-feira, 25 de janeiro de 2017 12:08