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

consulta para graficos de EStadisticas

Estas en el tema de consulta para graficos de EStadisticas en el foro de Mysql en Foros del Web. Hola, estoy usando el aplicativo gratuito para graficas estadisticas llamado OPEN FLASH CHART, si alguien tiene dudas o quisiera saber mas de esto me pueden ...
  #1 (permalink)  
Antiguo 16/03/2009, 15:01
 
Fecha de Ingreso: julio-2008
Ubicación: BOGOTA
Mensajes: 81
Antigüedad: 15 años, 9 meses
Puntos: 1
consulta para graficos de EStadisticas

Hola, estoy usando el aplicativo gratuito para graficas estadisticas llamado OPEN FLASH CHART, si alguien tiene dudas o quisiera saber mas de esto me pueden preguntar.

Mi problema es que al hacer una consulta tengo lios al cruzar dos tablas en la cual seria obligatorio hacer un distinct pero en un Left join..es esto posible??
Esta es mi consulta:

Código PHP:
$query "SELECT COUNT( gnv_t_suic.n_nit_certificador ) AS numero, DATE_FORMAT( f_fecha_oper, '%b %y' ) AS fecha, CURDATE( )
    FROM gnv_t_suic LEFT JOIN  gnv_t_taller ON n_nit_taller = k_n_nit    WHERE gnv_t_suic.n_nit_certificador = '$nits' AND (YEAR( CURDATE( ) ) - YEAR( f_fecha_oper ) - ( RIGHT( CURDATE( ) , 5 ) < RIGHT( f_fecha_oper, 5 ) ) ) = '0' AND k_n_nit= n_nit_taller  AND d_municipio = '$ciudad' and gnv_t_taller.n_nit_certificador = gnv_t_suic.n_nit_certificador
    GROUP BY fecha
    ORDER BY f_fecha_oper"

En esta consulta use el left join, en este caso todo anda bien siempre y cuando en la tabla gnv_t_taller no haya registros repetidos, sino la estadistica muestra datos falsos...
Por eso mi pregunta es como hacer para que con un LEFT JOIN a la tabla gnv_t_taller tambien me haga un distinct de los registros..
  #2 (permalink)  
Antiguo 17/03/2009, 20:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 4 meses
Puntos: 2658
Respuesta: consulta para graficos de EStadisticas

Lo que te conviene hacer, para hacerlo simple, es suplantar la tabla gnv_t_taller por una subconsulta que te permita eliminar las repeticiones de registros en ella.
Algo así:
Código sql:
Ver original
  1. SELECT
  2.     COUNT(gnv_t_suic.n_nit_certificador) AS numero,
  3.     DATE_FORMAT(f_fecha_oper, '%b %y') AS fecha,
  4.     CURDATE()
  5. FROM gnv_t_suic LEFT JOIN
  6.     (SELECT DISTINCT n_nit_certificador, n_nit_taller FROM gnv_t_taller GROUP BY campodiscriminador) gnv_t_taller
  7.     ON n_nit_taller = k_n_nit
  8. WHERE
  9.     gnv_t_suic.n_nit_certificador = 'nits'
  10.     AND (YEAR(CURDATE()) - YEAR(f_fecha_oper) - (RIGHT(CURDATE(), 5) < RIGHT(f_fecha_oper, 5))) = '0'
  11.     AND k_n_nit= n_nit_taller
  12.     AND d_municipio = 'ciudad'
  13.     AND gnv_t_taller.n_nit_certificador = gnv_t_suic.n_nit_certificador
  14. GROUP BY fecha
  15. ORDER BY f_fecha_oper;
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
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 11:45.