Ver Mensaje Individual
  #1 (permalink)  
Antiguo 18/06/2013, 10:00
DavidPa
 
Fecha de Ingreso: junio-2013
Mensajes: 8
Antigüedad: 11 años, 6 meses
Puntos: 0
Query me multiplica registros

Buen dia, mi problema es que tengo un query que por ejemplo si un usuario tiene de total = 8 le pone 432, son cantidades exageradas, mi query es el siguiente:
Código SQL:
Ver original
  1. SELECT  u.nombre_usuario
  2. ,  SUM(ISNULL(totalEscaneos,0) +
  3.  ISNULl(totalEscaneosSalida,0) +
  4.  ISNULl(totalEscaneosSinRegistro,0) +
  5.  ISNULl(totalEscaneosSinRegistroSalidaRefri,0) +
  6.  ISNULl(totalEscaneosSinRegistroFifo,0) +
  7.  ISNULl(totalEscaneosSinReposo,0) +
  8.  ISNULL(totalEscaneosEntradaFifo,0) +
  9.  ISNULL(totalEscaneosSalidaFifo,0)) AS Total
  10. , CONVERT(CHAR(10), fecha  , 101)  Fecha
  11.  
  12. FROM tb_usuarios u
  13. LEFT JOIN (
  14.  SELECT id_usuario ,  CONVERT(CHAR(10), tb_escaneos.fecha  , 101) AS fecha, SUM( num_escaneos ) AS totalEscaneos
  15.  FROM tb_escaneos WHERE CONVERT(CHAR(10), tb_escaneos.fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013' AND fifo IS NULL
  16.  GROUP BY id_usuario ,  CONVERT(CHAR(10), tb_escaneos.fecha  , 101)
  17. ) e ON u.id_usuario = e.id_usuario
  18. LEFT JOIN (
  19.  SELECT  id_usuario ,  CONVERT(CHAR(10), tb_escaneosSalida .fecha  , 101) AS fechaSalida, SUM( num_escaneos ) AS totalEscaneosSalida
  20.  FROM tb_escaneosSalida WHERE CONVERT(CHAR(10), tb_escaneosSalida .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013' AND fifo IS NULL
  21.  GROUP BY id_usuario ,  CONVERT(CHAR(10), tb_escaneosSalida .fecha  , 101)
  22. ) es ON u.id_usuario = es.id_usuario
  23. LEFT JOIN (
  24.  SELECT  id_usuario ,  CONVERT(CHAR(10), tb_registros .fecha  , 101) AS fechaSinRegistro, SUM( sin_registroTotal ) AS totalEscaneosSinRegistro
  25.  FROM tb_registros  WHERE CONVERT(CHAR(10), tb_registros  .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013'
  26.  GROUP BY id_usuario ,  CONVERT(CHAR(10), tb_registros .fecha  , 101)
  27. ) et ON u.id_usuario = et.id_usuario
  28. LEFT JOIN (
  29.  SELECT  id_usuario , CONVERT(CHAR(10), tb_registros .fecha  , 101) AS fechaSinRegistroSalidaRefri,  SUM( sin_registroSalidaRefri  ) AS totalEscaneosSinRegistroSalidaRefri
  30.  FROM tb_registros  WHERE CONVERT(CHAR(10), tb_registros  .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013'
  31.  GROUP BY id_usuario , CONVERT(CHAR(10), tb_registros .fecha  , 101)
  32. ) ete ON u.id_usuario = ete.id_usuario
  33.  
  34. LEFT JOIN (
  35.  SELECT  id_usuario , CONVERT(CHAR(10), tb_registros .fecha  , 101) AS fechaSinRegistroFifo, SUM( sin_registroFifo  ) AS totalEscaneosSinRegistroFifo
  36.  FROM tb_registros  WHERE CONVERT(CHAR(10), tb_registros  .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013'
  37.  GROUP BY id_usuario , CONVERT(CHAR(10), tb_registros .fecha  , 101)
  38. ) ele ON u.id_usuario = ele.id_usuario
  39.  
  40. LEFT JOIN (
  41.  SELECT  id_usuario , CONVERT(CHAR(10), tb_registros .fecha  , 101) AS fechaSinReposo, SUM( no_cumplioReposo   ) AS totalEscaneosSinReposo
  42.  FROM tb_registros  WHERE CONVERT(CHAR(10), tb_registros  .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013'
  43.  GROUP BY id_usuario, CONVERT(CHAR(10), tb_registros .fecha  , 101)
  44. ) el ON u.id_usuario = el.id_usuario
  45. LEFT JOIN (
  46.  SELECT id_usuario , CONVERT(CHAR(10), tb_escaneos .fecha  , 101) AS fechaEntradaFifo,  SUM( num_escaneos ) AS totalEscaneosEntradaFifo
  47.  FROM tb_escaneos WHERE CONVERT(CHAR(10), tb_escaneos.fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013' AND fifo = 1
  48.  GROUP BY id_usuario , CONVERT(CHAR(10), tb_escaneos .fecha  , 101)
  49. ) epe ON u.id_usuario = epe.id_usuario
  50. LEFT JOIN (
  51.  SELECT id_usuario , CONVERT(CHAR(10), tb_escaneosSalida  .fecha  , 101) AS fechaSalidaFifo,  SUM( num_escaneos ) AS totalEscaneosSalidaFifo
  52.  FROM tb_escaneosSalida  WHERE CONVERT(CHAR(10), tb_escaneosSalida .fecha  , 101) BETWEEN '01/01/2013' AND '06/14/2013' AND fifo = 1
  53.  GROUP BY id_usuario , CONVERT(CHAR(10), tb_escaneosSalida  .fecha  , 101)
  54. ) eper ON u.id_usuario = eper.id_usuario
  55. GROUP BY
  56. u.nombre_usuario
  57. ,CONVERT(CHAR(10), fecha  , 101)
  58. ORDER BY
  59. u.nombre_usuario
  60. ,CONVERT(CHAR(10), fecha  , 101)


y el resultado es el siguiente:
Código SQL:
Ver original
  1. ADMIN   0   NULL
  2. ADMIN TOTAL 2   05/28/2013
  3. ADMIN TOTAL 2   06/03/2013
  4. Adolfo Martinez Avila   0   NULL
  5. Adrian Martinez 1   NULL
  6. Alejandra Barrera   0   NULL
  7. alfonso samuel  0   NULL
  8. Amairani Cristal    0   NULL
  9. Ana Yanci Morales   0   NULL
  10. Ancelma Hdz 0   NULL
  11. Cesar Araguz    0   NULL
  12. Cricelda Garcia 1   NULL
  13. Crisoforo Santiago  2   NULL
  14. Daniel Diaz Martinez    0   NULL
  15. Deisy cruz  0   NULL
  16. Eliana Beatriz Perez    0   NULL
  17. Fernando David Mendoza  1   NULL
  18. Fernando Jimenez    12  05/29/2013
  19. Fernando Jimenez    3   05/31/2013
  20. Georgina Salazar    0   NULL
  21. Gloria Izaguiire    0   NULL
  22. Irineo Torres   432 NULL
  23. Jaime Ramirez   1   NULL
  24. Jose  Luis Regino   0   NULL
  25. Jose Mario Garcia   5   NULL
  26. Juan Carlos Rojas   0   NULL
  27. Julio Cesar Hdz 40  NULL
  28. Julio Cesar martinez    0   NULL
  29. Julio Rivera    0   NULL
  30. Ma del Carmen Morato    0   NULL
  31. Marcelino Diaz  1   NULL
  32. Maribel Lopez   2   NULL
  33. Maribel Santiago    2   NULL
  34. Monica Guerra   0   NULL
  35. Nelson Garcia   1   NULL
  36. Nohemi Ramirez  0   NULL
  37. Odilon Elizalde 0   NULL
  38. Paulina Lorenzo 0   NULL
  39. Porfirio Gregorio Hdz   0   NULL
  40. Rolando maldonado   5   NULL
  41. Rosa Aidee  0   NULL
  42. samuel perez    0   NULL
  43. Samuel Perez    2   05/30/2013
  44. Samuel Perez    2   06/05/2013
  45. Teodora Cerna   0   NULL
  46. Uriel Lopez 0   NULL
  47. Valentin De la Cruz 1   NULL
  48. Veronica Hernandez  16  NULL
  49. Vicente Garcia  0   NULL
  50. Victor del Angel    0   NULL
  51. Yolanda Dolores 0   NULL

Alguien sabe que es lo que tengo mal para que me pueda dar el numero exacto de totales y no me de cantidades exageradas?

Última edición por gnzsoloyo; 18/06/2013 a las 10:32