PIVOT
Publicado por Ana (34 intervenciones) el 07/03/2018 13:26:23
Buenos días a tod@s,
He creado un procedimiento en SQL Server 2017, utilizando PIVOT, ya que tiene que ser dinámico, ya que a veces, me vendrán con más campos.
Yo tengo esta estructura de tablas donde recupero los datos.
tabla principal:
id nombre
1 nombre1
2 nombre2
3 nombre3
Tabla2
id idTablaPrincipal gastos importe
1 1 ITV 100
2 2 gasolina 50
3 2 Peaje 200
4 3 ITV 100
Este es mi PIVOT:
Y lo que me aparece es:
id nombre ITV gasolina Peaje
1 nombre1 100
2 nombre2 50
2 nombre2 200
3 nombre3 100
Y yo la quiero de la siguiente manera:
id nombre ITV gasolina Peaje
1 nombre1 100
2 nombre2 50 200
3 nombre3 100
Muchas gracias de antemano.
Un saludo
Ana
He creado un procedimiento en SQL Server 2017, utilizando PIVOT, ya que tiene que ser dinámico, ya que a veces, me vendrán con más campos.
Yo tengo esta estructura de tablas donde recupero los datos.
tabla principal:
id nombre
1 nombre1
2 nombre2
3 nombre3
Tabla2
id idTablaPrincipal gastos importe
1 1 ITV 100
2 2 gasolina 50
3 2 Peaje 200
4 3 ITV 100
Este es mi PIVOT:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
SET @dinamicPivot =
N'SELECT id, nombre, ' + @columnName + ', importe
FROM
(
SELECT CGA.id, CGA.nombre, CGA.nombre2 As columna, CGA.baseImponible As importe
FROM tablaPrincipal AGF
INNER JOIN tabla2 TC ON TC.id = AGF.id
) As miPivot
PIVOT
(
AVG(miPivot.BI)
FOR miPivot.columna IN (' + @columnName + ')
) As pivotable
ORDER BY fecha'
Y lo que me aparece es:
id nombre ITV gasolina Peaje
1 nombre1 100
2 nombre2 50
2 nombre2 200
3 nombre3 100
Y yo la quiero de la siguiente manera:
id nombre ITV gasolina Peaje
1 nombre1 100
2 nombre2 50 200
3 nombre3 100
Muchas gracias de antemano.
Un saludo
Ana
Valora esta pregunta


0