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

Conteos con pivot

Estas en el tema de Conteos con pivot en el foro de SQL Server en Foros del Web. Hola que tal tengo el siguiente codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original SELECT md_usuario , nombre , isnull ( turno , '' ) turno ...
  #1 (permalink)  
Antiguo 10/08/2010, 19:46
Avatar de DanX03  
Fecha de Ingreso: septiembre-2007
Ubicación: México D.F.
Mensajes: 148
Antigüedad: 17 años, 1 mes
Puntos: 3
Conteos con pivot

Hola que tal tengo el siguiente codigo:

Código SQL:
Ver original
  1. SELECT md_usuario,nombre,isnull(turno,'') turno,nombre_sup,ctes0001 AS [a],ctes0002 AS [b],ctes0003 AS [c],
  2. ctes0004 AS [d],ctes0005 AS [e],ctes0006 AS [f],ctes0007 AS [g],ctesreferi2 AS [h],isnull(tot_llamadas,0) tot_llamadas,isnull(tot_contac,0) tot_contac, isnull(tot_efect,0) tot_efect,isnull(tot_ventas,0) tot_ventas FROM
  3. (SELECT a.md_usuario,a.nombre,isnull(aa.turno,'') turno,aa.nombre_sup,b.plaza,isnull(b.tot_llamadas,0) tot_llamadas,isnull(c.tot_contac,0) tot_contac, isnull(e.tot_efect,0) tot_efect,isnull(d.tot_ventas,0) tot_ventas FROM(
  4. (SELECT DISTINCT a.md_usuario, b.nombre+' '+b.paterno+' '+b.materno AS nombre
  5. FROM amex_2010.dbo.intentos a, prod.rh.usuarios b WHERE a.md_usuario=b.idUSUARIO AND b.idempresa IN (5,6) AND (a.MD_FECHA_CAPTURA BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1)) a
  6. LEFT OUTER JOIN
  7. (SELECT DISTINCT a.idsupervisor,a.turno,a.idusuario, b.nombre+' '+b.paterno+' '+b.materno AS nombre_sup
  8. FROM amex_2010.dbo.ctrl_rvt a, prod.rh.usuarios b WHERE a.idsupervisor=b.idUSUARIO AND b.idempresa IN (5,6) AND (fecha BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1)) aa
  9. ON a.md_usuario=aa.idusuario
  10. LEFT OUTER JOIN
  11. (SELECT md_usuario,plaza,COUNT(1) AS tot_llamadas FROM amex_2010.dbo.intentos WHERE(MD_FECHA_CAPTURA BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1) GROUP BY plaza,md_usuario) b
  12. ON a.md_usuario=b.md_usuario
  13. LEFT OUTER JOIN
  14. (SELECT md_usuario,plaza,COUNT(1) AS tot_contac FROM amex_2010.dbo.intentos
  15. WHERE md_status IN ('05A','70X','99','03M','03O','03N','03G','03J','03I','03L','05G','02M','02E','02C','02B','02F','02D','02L','02A','02H','02J','02N','02I','04J','04F','04D','04I','04H','04K','01A','01B','01C','01D','01E','01F','01G','01H','01I')
  16. AND (MD_FECHA_CAPTURA BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1)
  17. GROUP BY plaza,md_usuario )c
  18. ON a.md_usuario=c.md_usuario AND b.plaza=c.plaza
  19. LEFT OUTER JOIN
  20. (SELECT md_usuario,plaza,COUNT(1) AS tot_efect FROM amex_2010.dbo.intentos
  21. WHERE md_status IN ('01G','01E','01F','01D','01B','01C','01A','01H','01I','03O','02E','02F','02J','02B','02D','02C','02M','02H','02A','02L','02I','03G','03N','02F','05G','03M','03J','03I','04K','04H','04I' )
  22. AND (MD_FECHA_CAPTURA BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1)
  23. GROUP BY plaza,md_usuario )e
  24. ON a.md_usuario=e.md_usuario AND b.plaza=e.plaza
  25. LEFT OUTER JOIN
  26. (SELECT md_usuario,md_tabla,COUNT(1) AS tot_ventas FROM amex_2010.dbo.VENTAS WHERE (MD_FECHA_CAPTURA BETWEEN CONVERT(datetime,'01/08/2010',103) AND CONVERT(datetime,'31/08/2010',103)+1) GROUP BY md_tabla,md_usuario) d
  27. ON a.md_usuario=d.md_usuario AND b.plaza=d.md_tabla)
  28. ) x pivot(COUNT(plaza) FOR plaza IN ([ctes0001],[ctes0002],[ctes0003],[ctes0004],[ctes0005],[ctes0006],[ctes0007],[ctesreferi2])) AS y ORDER BY md_usuario,nombre

lo que deseo que haga es que haga un conteo de las tablas que ha tocado un usuario, ya que en las columnas indicadas con letras solo aparece un numero 1 si el usuario a tocado registros de la misma tabla y la misma persona me aparece mas de una vez. En donde ten que corregir este codigo para que me aparescan los conteos de la tabla en un solo renglon por usuario

Etiquetas: pivot
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 14:47.