Ver Mensaje Individual
  #2 (permalink)  
Antiguo 19/06/2014, 08:07
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Duda para obtener información por PIVOT

con los valores como los tienes no se puede hacer un unpivot en un solo paso tendrias que hacerlo en 2 uno para cada valor, pero si puedes juntar esos 2 querys en uno solo :) quedaria algo como esto:


Código SQL:
Ver original
  1. CREATE TABLE #temp
  2. (
  3. num INT,
  4. clase01 INT,
  5. clase02 INT,
  6. clase03 INT,
  7. clase04 INT,
  8. clase05 INT,
  9. clase06 INT
  10. )
  11.    
  12.    INSERT INTO #temp VALUES (1      ,      1000    ,      2000    ,     3000    ,      4000    ,      5000    ,      6000)
  13.    INSERT INTO #temp VALUES (2      ,      7000    ,      8000    ,     9000    ,     10000   ,    11000    ,    12000)
  14.  
  15.  
  16. SELECT tabla1.numero,tabla1.[1],tabla2.[2] FROM(
  17. SELECT numero,[1]
  18. FROM
  19. (
  20. SELECT * FROM #temp WHERE num=1
  21. ) AS t1
  22. unpivot
  23. (
  24. [1] FOR numero IN (clase01,clase02,clase03,clase04,clase05,clase06)
  25. ) AS t2
  26. ) AS tabla1
  27. LEFT JOIN
  28.  
  29. (SELECT numero,[2]
  30. FROM
  31. (
  32. SELECT * FROM #temp WHERE num=2
  33. ) AS t1
  34. unpivot
  35. (
  36. [2] FOR numero IN (clase01,clase02,clase03,clase04,clase05,clase06)
  37. ) AS t2) AS tabla2 ON (tabla1.numero=tabla2.numero)

y el resultado final:

numero 1 2
clase01 1000 7000
clase02 2000 8000
clase03 3000 9000
clase04 4000 10000
clase05 5000 11000
clase06 6000 12000


saludos,
Libras
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me