Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/06/2012, 07:37
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: consulta sql para obtener permisos de usuarios

Aqui un ejemplo de pivot tables:

Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. pointid INT,
  4. lanid INT,
  5. thelabel VARCHAR(30),
  6. datatime datetime,
  7. datavalue VARCHAR(10),
  8. theunits VARCHAR(10),
  9. Expr1 VARCHAR(10)
  10. )
  11.  
  12.  
  13.  
  14. INSERT INTO #temp VALUES (580,8,'Hotel Columbus','10/07/2011 11:00','49,21','DegC','TEP01')
  15. INSERT INTO #temp VALUES (581,9,'Hotel Columbus2','10/08/2011 11:00','49,21','DegC2','TEP02')
  16. INSERT INTO #temp VALUES (581,9,'Hotel Columbus3','10/08/2011 11:00','49,21','DegC2','TEP03')
  17.  
  18. SELECT * FROM #temp
  19.  
  20. SELECT pointid,lanid,thelabel,datatime,datavalue,theunits,[TEP01],[TEP02],[TEP03]
  21. FROM
  22. (
  23.    SELECT Expr1,pointid,lanid,thelabel,datatime,datavalue,theunits FROM #temp
  24. ) AS SOURCE
  25. pivot
  26. (
  27.   MAX(Expr1) FOR Expr1 IN ([TEP01],[TEP02],[TEP03])
  28. ) 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!
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me