You can use PIVOT function. Here is an example
SQL PIVOT Rows to Columns - Stack Exchange Data Explorer[
^]
DECLARE @test TABLE (
Grado VARCHAR(50),
Codigo VARCHAR(50),
Nombre VARCHAR(50),
Detalle VARCHAR(50),
Valor VARCHAR(50)
)
INSERT INTO @test
SELECT 'Tercero','4664','Angie','Descuento','-250.00'
UNION
SELECT 'Tercero','4664','Angie','Mensualidad','5000.00'
UNION
SELECT 'Tercero','4664','Angie','Fact','-875.00';
select Grado, Codigo, Nombre, Descuento, Mensualidad
from
(
select Grado, Codigo,Nombre, Valor, Detalle
from @test
) d
pivot
(
max(Valor)
for Detalle in (Descuento, Mensualidad)
) piv;
Output:
Grado Codigo Nombre Descuento Mensualidad
Tercero 4664 Angie -250.00 5000.00