21/06/2012, 19:53
|
| | | Fecha de Ingreso: noviembre-2008 Ubicación: Chile
Mensajes: 504
Antigüedad: 16 años Puntos: 4 | |
Respuesta: consulta sql para obtener permisos de usuarios Estimado gracias por contestar, tu ejemplo me sirvió 100% y los ejemplos que me enviaste igual, mi consulta que quedo casi igual a la que me enviaste pero tengo un problema, todos los primeros datos están bien menos los módulos (me aparecen todos en null) esta es mi consulta: Cita: SELECT RUT, USERNAME, PASS, TIPO, ESTADO, [M1], [M2], [M3]
FROM
(
SELECT USUARIO.RUT_PERSONAL AS RUT, USUARIO.USERNAME AS USERNAME, USUARIO.PASSWORD AS PASS, USUARIO.TIPO_USUARIO AS TIPO, USUARIO.ACTIVO AS ESTADO, MODULOS.MODULO AS MODULOS
FROM USUARIO
INNER JOIN ACCESOMODULOS ON USUARIO.RUT_PERSONAL = ACCESOMODULOS.RUT_PERSONAL
INNER JOIN MODULOS ON ACCESOMODULOS.ID_MODULO = MODULOS.ID_MODULO
)AS FUENTE
PIVOT
(
MAX(MODULOS) FOR MODULOS IN ([M1], [M2], [M3])
)AS PVT Espero me puedas ayudar a sacar este problema gracias. Cita:
Iniciado por Libras Aqui un ejemplo de pivot tables:
Código SQL:
Ver originalCREATE TABLE #temp ( pointid INT, lanid INT, thelabel VARCHAR(30), datatime datetime, datavalue VARCHAR(10), theunits VARCHAR(10), Expr1 VARCHAR(10) ) INSERT INTO #temp VALUES (580,8,'Hotel Columbus','10/07/2011 11:00','49,21','DegC','TEP01') INSERT INTO #temp VALUES (581,9,'Hotel Columbus2','10/08/2011 11:00','49,21','DegC2','TEP02') INSERT INTO #temp VALUES (581,9,'Hotel Columbus3','10/08/2011 11:00','49,21','DegC2','TEP03') SELECT * FROM #temp SELECT pointid,lanid,thelabel,datatime,datavalue,theunits,[TEP01],[TEP02],[TEP03] FROM ( SELECT Expr1,pointid,lanid,thelabel,datatime,datavalue,theunits FROM #temp ) AS SOURCE pivot ( MAX(Expr1) FOR Expr1 IN ([TEP01],[TEP02],[TEP03]) ) AS pvt
Si te fijas en el primer select el normal despliega la informacion en filas(resultados para tepo1,tepo2 y tepo3) y en el segundo usando pivot tables lo despliega en columnas :), basate en este ejemplo para obtener lo que necesitas, si observas bien veras y leeras(en internet) que la tabla pivote necesita una funcion de agregado para poder ser usada(en este caso max para que no afecte el resultado).
Mas ejemplos: http://blogs.msdn.com/b/spike/archiv...le-sample.aspx http://blog.sqlauthority.com/2008/05...table-example/ http://geeks.ms/blogs/ozonicco/archi...rver-2005.aspx
Saludos!
__________________ "Incluso las torres más altas empiezan en el suelo." "Sé Ágil..." StreamWriter |