
Obteniendo filas como columnas con SQL 2014
Publicado por maria edith (2 intervenciones) el 17/05/2016 01:11:41
Hola a Todos.
Tengo una duda con respecto a la función PIVOT les agradecería cualquier ayuda.
Ya tengo un SP que me regresa los datos del cruce de dos tablas (una guarda datos que son campos tipo bit y otra es el catalogo) bueno el chiste es que el valor que al final queda en las columnas es el campo bit pero no he podido hacer que la función regrese el dato como bit o lógico sino que lo tuve que modificar a numérico para poderlo ejecutar, Alguien conoce una forma en la que al final pueda obtener esos datos como lógicos???
Este es mi código para hacerme entender mejor.
Proyecto CartadeAsignacion JuegodePlanos MemoriaDescriptiva OrdendeCompra OrdendeServicioLD Pedido45oCartadeAutorizacion Pedido468889 Permisosencasoderequerirse PorcentajedePostesLiberadosdelaElectrica ProgramadeTrabajoActualizado
COL09OLP-PTGHJ-01 1 1 1 1 1 1 1 1 1 1
ELPULTOM-002-OLO987 0 1 1 1 0 1 1 0 1 1
PILTRADLO00192-987 1 1 1 1 1 1 1 1 1 1
Al ejecutarlo funciona solo que los valores son cero y uno en lugar de falso o verdadero, que es lo que necesito para continuar con otras cosas. o sabran si de plano no se puede hacer con la función PIVOT?
Saludos y gracias por la atención .... :-)
Tengo una duda con respecto a la función PIVOT les agradecería cualquier ayuda.
Ya tengo un SP que me regresa los datos del cruce de dos tablas (una guarda datos que son campos tipo bit y otra es el catalogo) bueno el chiste es que el valor que al final queda en las columnas es el campo bit pero no he podido hacer que la función regrese el dato como bit o lógico sino que lo tuve que modificar a numérico para poderlo ejecutar, Alguien conoce una forma en la que al final pueda obtener esos datos como lógicos???
Este es mi código para hacerme entender mejor.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
declare @attr varchar(max)
declare @sql varchar(max)
set @attr=''
set @sql='select Proyecto, #attr#
from
( Select T0.IDProyecto as Proyecto,( Case when T0.Cumplido =1 then 1 else 0 end ) as Cumplido
,Replace(SubString(T1.Criterio,1,100),'' '','''') as Criterio
From Tarea1 T0 inner join CatTareas T1 on (T0.IDCriterio=T1.ID)
) as source pivot(
max(Cumplido)
for Criterio in (#attr#)
) as pvt
'
select @attr=@attr+'['+V.Criterio+'],'from (
select distinct Replace(SubString(Criterio,1,100),' ','') as Criterio from dbo.CatTareas where Tarea=1
) as V
set @attr=SUBSTRING(@attr,0,len(@attr))
set @sql=REPLACE(@sql,'#attr#',@attr)
print @sql
exec(@sql)
Proyecto CartadeAsignacion JuegodePlanos MemoriaDescriptiva OrdendeCompra OrdendeServicioLD Pedido45oCartadeAutorizacion Pedido468889 Permisosencasoderequerirse PorcentajedePostesLiberadosdelaElectrica ProgramadeTrabajoActualizado
COL09OLP-PTGHJ-01 1 1 1 1 1 1 1 1 1 1
ELPULTOM-002-OLO987 0 1 1 1 0 1 1 0 1 1
PILTRADLO00192-987 1 1 1 1 1 1 1 1 1 1
Al ejecutarlo funciona solo que los valores son cero y uno en lugar de falso o verdadero, que es lo que necesito para continuar con otras cosas. o sabran si de plano no se puede hacer con la función PIVOT?
Saludos y gracias por la atención .... :-)
Valora esta pregunta


0