Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Realizar una tabla dinamica en SQL

Estas en el tema de Realizar una tabla dinamica en SQL en el foro de SQL Server en Foros del Web. Estimados, Una consulta, se puede realizar una tabla dinamica de excel en SQL Server...??? Resulta que estoy tratando de realizar una consulta que me devuelva ...
  #1 (permalink)  
Antiguo 19/08/2014, 14:41
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 2 meses
Puntos: 5
Exclamación Realizar una tabla dinamica en SQL

Estimados,

Una consulta, se puede realizar una tabla dinamica de excel en SQL Server...??? Resulta que estoy tratando de realizar una consulta que me devuelva un formato similar a este:

01/08/2014
TELEFONO ENTRANTE SALIENTE
111111111 15 35
222222222 20 222
333333333 154 26
444444444 198 157
555555555 0 0

Sin embargo, tengo problemas para adaptarme a ese formato....alguna idea sobre si es posible realizar esto o no....??
__________________
Lo que no se....tampoco creo saberlo....
  #2 (permalink)  
Antiguo 19/08/2014, 14:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

¿Cómo para que?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 19/08/2014, 14:47
 
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

Pues para mantener la información almacenada de manera ordenada dentro de mi BD, en la que mostraria el telefono, el tipo de llamada realizada (entrada o salida) y la suma de todo el tiempo....
__________________
Lo que no se....tampoco creo saberlo....
  #4 (permalink)  
Antiguo 19/08/2014, 14:52
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

Pues no se entiende, ¿Qué significa la fecha 01/08/2014?
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 19/08/2014, 14:55
 
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

ahh, pues eso es el dia en que se realizaron las llamadas, seria como decir:

telefono 01/08/2014 - saliente 01/08/2014 - entrante
1111111 152 158


espero se haya entendido.... :S
__________________
Lo que no se....tampoco creo saberlo....
  #6 (permalink)  
Antiguo 19/08/2014, 14:55
Avatar de 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: Realizar una tabla dinamica en SQL

mande????????
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #7 (permalink)  
Antiguo 19/08/2014, 14:58
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

jajajajajajaja, no pues esta bien tu explicación, ¿pero sabes acaso algo de MODELADO DE BASES DE DATOS?, deberías tener algo como:


FECHA TELEFONO ENTRANTE SALIENTE
01/08/2014 111111111 15 35
01/08/2014 222222222 20 222
01/08/2014 333333333 154 26
01/08/2014 444444444 198 157
01/08/2014555555555 0 0
__________________
MCTS Isaias Islas
  #8 (permalink)  
Antiguo 19/08/2014, 15:07
 
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

Exacto iislas, similar a ese formato es el que tengo en mi BD, pero lo tengo de esta forma:

TELEFONO FECHA TIPO_LLAMADA DURACION
11111111 01/08/2014 ENTRANTE 154
11111111 01/08/2014 SALIENTE 250
22222222 01/08/2014 ENTRANTE 54
22222222 01/08/2014 SALIENTE 354

Pero queria consultar si es posible armar ese tipo de query, que es similar a una tabla dinamica de excel....
__________________
Lo que no se....tampoco creo saberlo....
  #9 (permalink)  
Antiguo 19/08/2014, 15:22
Avatar de 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: Realizar una tabla dinamica en SQL

si, eso se llama pivote, y se usa la funcion PIVOT, existen muchos temas en el foro acerca de pivot(aparte de documentacion en google)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #10 (permalink)  
Antiguo 19/08/2014, 15:32
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

Código SQL:
Ver original
  1. SELECT  TELEFONO,
  2. SUM(CASE WHEN TIPO = 'ENTRANTE' THEN DURACION END) AS ENTRANTE,
  3. SUM(CASE WHEN TIPO = 'SALIENTE' THEN DURACION END) AS SALIENTE
  4. FROM TUTBLA
  5. GROUP BY TELEFONO

¿Funciona?
__________________
MCTS Isaias Islas
  #11 (permalink)  
Antiguo 19/08/2014, 16:06
 
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

Libras: el pivot ya lo use para armar las columnas de la siguiente manera:

TELEFONO FECHA_LLAMADA SALIENTE ENTRANTE

sin embargo, lo que deseo es que se muestre algo como esto:

TELEFONO (DIA 1 - MES 08)SALIENTE (DIA 1 - MES 08)ENTRANTE (DIA 2 - MES 08)SALIENTE (DIA 2 - MES 08)ENTRANTE ............(DIA N - MES 08)SALIENTE (DIA N - MES 08)ENTRANTE

iislas: el codigo si funciona, pero no como lo deseo hacerlo...que es similar a las cabeceras que indico arriba....
__________________
Lo que no se....tampoco creo saberlo....
  #12 (permalink)  
Antiguo 19/08/2014, 16:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

Pues amigo, debes incrementar el numero de mes en el CASE, simple...........y claro, el año, por aquello de que tengas varios años.......
__________________
MCTS Isaias Islas
  #13 (permalink)  
Antiguo 19/08/2014, 16:23
Avatar de 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: Realizar una tabla dinamica en SQL

Cita:
Iniciado por ambichol Ver Mensaje
Libras: el pivot ya lo use para armar las columnas de la siguiente manera:

TELEFONO FECHA_LLAMADA SALIENTE ENTRANTE

sin embargo, lo que deseo es que se muestre algo como esto:

TELEFONO (DIA 1 - MES 08)SALIENTE (DIA 1 - MES 08)ENTRANTE (DIA 2 - MES 08)SALIENTE (DIA 2 - MES 08)ENTRANTE ............(DIA N - MES 08)SALIENTE (DIA N - MES 08)ENTRANTE

iislas: el codigo si funciona, pero no como lo deseo hacerlo...que es similar a las cabeceras que indico arriba....
Un pivote dinamico, hay muchos por el foro ;) y usa poquito la cabeza(no para golpear el teclado jejejeje)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #14 (permalink)  
Antiguo 19/08/2014, 16:30
 
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....
  #15 (permalink)  
Antiguo 19/08/2014, 16:38
Avatar de 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: Realizar una tabla dinamica en SQL

con un query dinamico y claro una tabla con tus fechas, el resultado sera el mismo pero no tendrias que escribir todo eso.......ahora la pregunta del millon, para que necesitas el reporte de esa manera??? y si eso te hace despeinar,ahora imaginate acomodar 45TB de informacion y crear sus respectivos filegroups y partition functions en una base de datos ;) hehehehehehe
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #16 (permalink)  
Antiguo 19/08/2014, 16:42
 
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

mmm....se que con un query dinamico saldria eso....pero todo tiene relacion con lo que preguntas, necesito el reporte de esa manera porque el archivo fuente esta en ese formato, es decir desde el 19 del mes pasado hasta el 18 de este mes....debe estar ordenado por las fechas....es por eso que declaro el query asi....
__________________
Lo que no se....tampoco creo saberlo....
  #17 (permalink)  
Antiguo 19/08/2014, 16:44
Avatar de 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: Realizar una tabla dinamica en SQL

en lugar de que la aplicacion se adapte a la base de datos, la base de datos se adapta a la aplicacion, clasica logica de programador jejejejeje
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #18 (permalink)  
Antiguo 19/08/2014, 16:51
 
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

jajajaja....en realidad....estoy armando mi propia BD con los archivos fuente que necesito para mi gestión diaria, y hago este proceso, debido a que para solicitar al área responsable de la elaboración de los reportes (Service Desk),la modificación, tomara mas tiempo del que actualmente cuento...por eso hago por mi lado esto....
Solo espero que a futuro no modifiquen la estructura de los reportes...jejejeje
__________________
Lo que no se....tampoco creo saberlo....
  #19 (permalink)  
Antiguo 19/08/2014, 16:56
Avatar de 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: Realizar una tabla dinamica en SQL

entonces te estas complicando demasiado se podria hacer una mejor estructura de la base pero si te sirve adelante......
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #20 (permalink)  
Antiguo 19/08/2014, 17:09
 
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

si pues....eso estoy planteando en mi area....pero ya estara sujeto a criterio de los jefes....
Libras, una ultima consulta, acabo de hacer el query dinamico, sin embargo como puedo quitar la ultima coma al mostrar las columnas...?

Código SQL:
Ver original
  1. DECLARE @QUERY VARCHAR(MAX)
  2. DECLARE @INI INT
  3. DECLARE @FIN INT
  4.  
  5. SET @INI = 1
  6. SET @FIN = 31
  7.  
  8. WHILE @INI <= @FIN
  9. BEGIN
  10. SET @QUERY = 'SELECT TELEFONO,
  11. ISNULL(SUM(CASE WHEN TIPO_LLAMADA = ''SALIENTE'' AND FECHA_LLAMADA LIKE '''+RIGHT('00'+CAST(@INI AS VARCHAR(2)),2)+'%'' THEN SEGUNDOS END),0) AS ['+RIGHT('00'+CAST(@INI AS VARCHAR(2)),2)+'_SALIENTE],
  12. ISNULL(SUM(CASE WHEN TIPO_LLAMADA = ''ENTRANTE'' AND FECHA_LLAMADA LIKE '''+RIGHT('00'+CAST(@INI AS VARCHAR(2)),2)+'%'' THEN SEGUNDOS END),0) AS ['+RIGHT('00'+CAST(@INI AS VARCHAR(2)),2)+'_ENTRANTE],
  13. FROM T1
  14. GROUP BY TELEFONO
  15. ORDER BY 1'
  16. SET @INI = @INI + 1
  17. PRINT (@QUERY)
  18.  
  19. END
__________________
Lo que no se....tampoco creo saberlo....
  #21 (permalink)  
Antiguo 21/08/2014, 14:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Realizar una tabla dinamica en SQL

¿Y te funciona la comparación de las fechas?

FECHA_LLAMADA = '26/06/2014'
__________________
MCTS Isaias Islas

Etiquetas: dinamica, server, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:26.