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