Ver Mensaje Individual
  #14 (permalink)  
Antiguo 19/08/2014, 16:30
ambichol
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Respuesta: Realizar una tabla dinamica en SQL

Efectivamente, el sum case funciono como queria, pero el query es muy largo:
Código SQL:
Ver original
  1. SELECT TELEFONO,
  2. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '19/06/2014' THEN SEGUNDOS END) AS [19_SALIENTE],
  3. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '19/06/2014' THEN SEGUNDOS END) AS [19_ENTRANTE],
  4. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '20/06/2014' THEN SEGUNDOS END) AS [20_SALIENTE],
  5. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '20/06/2014' THEN SEGUNDOS END) AS [20_ENTRANTE],
  6. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '21/06/2014' THEN SEGUNDOS END) AS [21_SALIENTE],
  7. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '21/06/2014' THEN SEGUNDOS END) AS [21_ENTRANTE],
  8. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '22/06/2014' THEN SEGUNDOS END) AS [22_SALIENTE],
  9. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '22/06/2014' THEN SEGUNDOS END) AS [22_ENTRANTE],
  10. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '23/06/2014' THEN SEGUNDOS END) AS [23_SALIENTE],
  11. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '23/06/2014' THEN SEGUNDOS END) AS [23_ENTRANTE],
  12. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '24/06/2014' THEN SEGUNDOS END) AS [24_SALIENTE],
  13. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '24/06/2014' THEN SEGUNDOS END) AS [24_ENTRANTE],
  14. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '25/06/2014' THEN SEGUNDOS END) AS [25_SALIENTE],
  15. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '25/06/2014' THEN SEGUNDOS END) AS [25_ENTRANTE],
  16. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '26/06/2014' THEN SEGUNDOS END) AS [26_SALIENTE],
  17. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '26/06/2014' THEN SEGUNDOS END) AS [26_ENTRANTE],
  18. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '27/06/2014' THEN SEGUNDOS END) AS [27_SALIENTE],
  19. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '27/06/2014' THEN SEGUNDOS END) AS [27_ENTRANTE],
  20. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '28/06/2014' THEN SEGUNDOS END) AS [28_SALIENTE],
  21. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '28/06/2014' THEN SEGUNDOS END) AS [28_ENTRANTE],
  22. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '29/06/2014' THEN SEGUNDOS END) AS [29_SALIENTE],
  23. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '29/06/2014' THEN SEGUNDOS END) AS [29_ENTRANTE],
  24. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '30/06/2014' THEN SEGUNDOS END) AS [30_SALIENTE],
  25. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '30/06/2014' THEN SEGUNDOS END) AS [30_ENTRANTE],
  26. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '31/06/2014' THEN SEGUNDOS END) AS [31_SALIENTE],
  27. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '31/06/2014' THEN SEGUNDOS END) AS [31_ENTRANTE],
  28. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '01/07/2014' THEN SEGUNDOS END) AS [01_SALIENTE],
  29. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '01/07/2014' THEN SEGUNDOS END) AS [01_ENTRANTE],
  30. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '02/07/2014' THEN SEGUNDOS END) AS [02_SALIENTE],
  31. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '02/07/2014' THEN SEGUNDOS END) AS [02_ENTRANTE],
  32. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '03/07/2014' THEN SEGUNDOS END) AS [03_SALIENTE],
  33. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '03/07/2014' THEN SEGUNDOS END) AS [03_ENTRANTE],
  34. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '04/07/2014' THEN SEGUNDOS END) AS [04_SALIENTE],
  35. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '04/07/2014' THEN SEGUNDOS END) AS [04_ENTRANTE],
  36. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '05/07/2014' THEN SEGUNDOS END) AS [05_SALIENTE],
  37. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '05/07/2014' THEN SEGUNDOS END) AS [05_ENTRANTE],
  38. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '06/07/2014' THEN SEGUNDOS END) AS [06_SALIENTE],
  39. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '06/07/2014' THEN SEGUNDOS END) AS [06_ENTRANTE],
  40. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '07/07/2014' THEN SEGUNDOS END) AS [07_SALIENTE],
  41. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '07/07/2014' THEN SEGUNDOS END) AS [07_ENTRANTE],
  42. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '08/07/2014' THEN SEGUNDOS END) AS [08_SALIENTE],
  43. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '08/07/2014' THEN SEGUNDOS END) AS [08_ENTRANTE],
  44. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '09/07/2014' THEN SEGUNDOS END) AS [09_SALIENTE],
  45. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '09/07/2014' THEN SEGUNDOS END) AS [09_ENTRANTE],
  46. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '10/07/2014' THEN SEGUNDOS END) AS [10_SALIENTE],
  47. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '10/07/2014' THEN SEGUNDOS END) AS [10_ENTRANTE],
  48. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '11/07/2014' THEN SEGUNDOS END) AS [11_SALIENTE],
  49. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '11/07/2014' THEN SEGUNDOS END) AS [11_ENTRANTE],
  50. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '12/07/2014' THEN SEGUNDOS END) AS [12_SALIENTE],
  51. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '12/07/2014' THEN SEGUNDOS END) AS [12_ENTRANTE],
  52. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '13/07/2014' THEN SEGUNDOS END) AS [13_SALIENTE],
  53. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '13/07/2014' THEN SEGUNDOS END) AS [13_ENTRANTE],
  54. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '14/07/2014' THEN SEGUNDOS END) AS [14_SALIENTE],
  55. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '14/07/2014' THEN SEGUNDOS END) AS [14_ENTRANTE],
  56. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '15/07/2014' THEN SEGUNDOS END) AS [15_SALIENTE],
  57. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '15/07/2014' THEN SEGUNDOS END) AS [15_ENTRANTE],
  58. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '16/07/2014' THEN SEGUNDOS END) AS [16_SALIENTE],
  59. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '16/07/2014' THEN SEGUNDOS END) AS [16_ENTRANTE],
  60. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '17/07/2014' THEN SEGUNDOS END) AS [17_SALIENTE],
  61. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '17/07/2014' THEN SEGUNDOS END) AS [17_ENTRANTE],
  62. SUM(CASE WHEN TIPO_LLAMADA = 'SALIENTE' AND FECHA_LLAMADA = '18/07/2014' THEN SEGUNDOS END) AS [18_SALIENTE],
  63. SUM(CASE WHEN TIPO_LLAMADA = 'ENTRANTE' AND FECHA_LLAMADA = '18/07/2014' THEN SEGUNDOS END) AS [18_ENTRANTE]
  64. FROM #T1
  65. GROUP BY TELEFONO
  66. ORDER BY 1

Alguna manera mas corta de hacer esto...?

Libras: creeme que por estar pensando como hacer esto....estoy mas despeinado que otra cosa...jejeje...
__________________
Lo que no se....tampoco creo saberlo....