Opción de agregado en la sentencia CASE de SQL Server

Tengo los siguientes datos en una tabla #temp :

 Id code Fname CompanyId FieldName Value ---------------------------------------------------------------- 465 00133 JENN WILSON 1 ERA 1573 465 00133 JENN WILSON 1 ESHIFTALLOW 3658 465 00133 JENN WILSON 1 NETPAY 51560 

Quiero hacer la siguiente operación, es decir

  • Una fila se ERA + ESHIFTALLOW en dos columnas, es decir, ERA + ESHIFTALLOW
  • Otra fila será la resta y la sum en tres columnas, es decir, NETPAY - ERA + ESHIFTALLOW

Intenté usar la statement de case en SQL Server.

Esta es la consulta

 Select Id, Code, Fname, CompanyID, Company, FieldNameNew, Sum(Value) Value Into #temp2 from (select Id, Code, Fname, CompanyID, Company, Value, case when FieldName in ('OT', 'EONCALLALLOW', 'ESHIFTALLOW', 'FOT', 'EUNIALLOW', 'ESECALLOW', 'ERA') then 'OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA' when FieldName in ('NETPAY') then 'NETPAY-OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA' else FieldName end, FieldNameNew from #temp) A group by Id, Code, Fname, CompanyID, Company, FieldNameNew 

Usando la consulta anterior, no puedo get resultados parciales

 Id code Fname CompanyId FieldNameNew Value 465 00133 JENN WILSON 1 NETPAY-OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA 51560 //INCORRECT Actual value should be (51560-5231) = 46329 465 00133 JENN WILSON 1 OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA 5231 //CORRECT 

La sum está funcionando bien, pero al hacer la resta en NETPAY no está funcionando

NETPAY-OT + EONCALLALLOW + ESHIFTALLOW + FOT + EUNIALLOW + ESECALLOW + ERA value = 51560 // INCORRECTO El valor real debería ser (51560-5231) = 46329

OT + EONCALLALLOW + ESHIFTALLOW + FOT + EUNIALLOW + ESECALLOW + ERA
Valor = 5231 // CORRECTO

Tienes una lógica correcta pero una fórmula incorrecta:

Esta es la manera incorrecta

 **NETPAY-OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA** 

Debes usar

 **NETPAY-OT-EONCALLALLOW-ESHIFTALLOW-FOT-EUNIALLOW-ESECALLOW-ERA** 

O

 **NETPAY-(OT+EONCALLALLOW+ESHIFTALLOW+FOT+EUNIALLOW+ESECALLOW+ERA)**