none
Subtrair valores de uma mesma coluna de uma tabela RRS feed

  • Pergunta

  • Boa Tarde,

    Fiz um select onde trago algumas informações.

    sec_codigo   esp_codigo   prd_codigo   ipr_codigo      itc_qtde      ttr_codigo
    112                  1                  46               3                1.0000          4
    112                  1                  46               6                1.0000          1
    112                  1                  46               6                1.0000          4
    112                  1                  46               6                1.0000          1
    112                  1                  46               6                1.0000          1
    112                  1                  46               6                1.0000          1
    112                  1                  46               6                1.0000          4
    112                  1                  46               7                1.0000          4
    112                  1                  46               7                1.0000          1



    Gostaria de estar subtraindo os valores da coluna itc_qtde quando o valor da coluna ttr_codigo for = 4 e fazer o total da coluna, com o group by com as 4 primeiras colunas.

    Desde já agradeço

    Danilo
    terça-feira, 17 de novembro de 2009 19:58

Todas as Respostas

  • Olá Danilo, segue exemplo de como realizar.


    use tempdb
    go
    
    -- criando tabela temporária
    DECLARE @temp TABLE
    (sec_codigo tinyint,  
     esp_codigo tinyint,  
     prd_codigo tinyint,  
     ipr_codigo tinyint,     
     itc_qtde   numeric(5,4),     
     ttr_codigo tinyint
    )
    
    -- populando a tabela
    INSERT @temp select 112,1,46,3,1.0000,4 
    INSERT @temp select 112,1,46,6,1.0000,1 
    INSERT @temp select 112,1,46,6,1.0000,4 
    INSERT @temp select 112,1,46,6,1.0000,1 
    INSERT @temp select 112,1,46,6,1.0000,1 
    INSERT @temp select 112,1,46,6,1.0000,1 
    INSERT @temp select 112,1,46,6,1.0000,4 
    INSERT @temp select 112,1,46,7,1.0000,4 
    INSERT @temp select 112,1,46,7,1.0000,1 
    
    /*
    Solicitação:
    Gostaria de estar subtraindo os valores da coluna itc_qtde quando 
    o valor da coluna ttr_codigo for = 4 e fazer o total da coluna, 
    com o group by com as 4 primeiras colunas.
    */
    
    -- Efetuando a consulta  	
    SELECT 
        X.sec_codigo, X.esp_codigo,   
        X.prd_codigo, X.ipr_codigo,
        Total = SUM(X.Total)
    FROM
        (SELECT 
            sec_codigo,	esp_codigo,   
            prd_codigo, ipr_codigo,      
            itc_qtde  , ttr_codigo,
            Total =  CASE ttr_codigo 
                     WHEN 4 THEN itc_qtde - ttr_codigo 
                     ELSE itc_qtde END
         FROM @temp
         ) AS X
    GROUP BY 
        X.sec_codigo, X.esp_codigo,   
        X.prd_codigo, X.ipr_codigo      
    

    Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino
    quarta-feira, 18 de novembro de 2009 01:29
  • Obrigado Leonardo,

    Apanhei um pouco mais consegui, Vlw!!!!
    quarta-feira, 18 de novembro de 2009 19:33