Ver Mensaje Individual
  #8  
Antiguo 09-12-2009
ingmichel ingmichel is offline
Miembro
 
Registrado: jun 2007
Posts: 137
Reputación: 17
ingmichel Va por buen camino
Efectivamente

EL PROBLEMA SE SOLUCIONO, REEMPLACE EL INNER JOIN POR UN LEFT JOIN Y CON ESO QUEDO RESUELTO, ENTONCES TAMBIEN PUSE LA FUNCION ISNULL(TOTA_PROCESADAS,0) PARA SI EN CASO NO EXISTA PROCEDAS ME DEVUELVA UN CERO Y ESO ERA TODO, MUCHAS GRACIAS NUEVAMENTE POR TU AYUDA, CUIDATE MUCHO Y HASTA PRONTO HERMANO...


Cita:
Empezado por Axel_Tech Ver Mensaje
En ese caso vas a tener que cambiar un poco las consultas. En vez de hacer los COUNT antes de insertarlos en las tablas temporales, hay que hacerlos después. Me explico:

supongo que tienes algo así:
Código SQL [-]INSERT INTO TABLA_TEMP_1(naviera_SOLIC, total_solicitudes) select naviera_SOLIC, count(DISTINCT NO_COMUNICACION) as total_solicitudes from MI_VISTA group by naviera_SOLIC


ahora tienes que meter todos los registros en vez de directamente el valor del COUNT:
Código SQL [-]INSERT INTO TABLA_TEMP_1(naviera_SOLIC, total_solicitudes) select naviera_SOLIC, NO_COMUNICACION as total_solicitudes from MI_VISTA group by naviera_SOLIC


lo mismo para cuando STATUS_CM='PROCESADA'. Y por último harías los COUNT en las tablas temporales:
Código SQL [-]SELECT TABLA_TEMP_1.naviera_SOLIC, COUNT(TABLA_TEMP_1.TOTAL_SOLICITUDES), COUNT(TABLA_TEMP_2.TOTAL_PROCESADAS) FROM TABLA_TEMP_1 LEFT JOIN TABLA_TEMP_2 ON TABLA_TEMP_1.naviera_SOLIC=TABLA_TEMP_2.naviera_SOLIC GROUP BY TABLA_TEMP_1.naviera_SOLIC


Fíjate que ahora en vez de hacer un INNER JOIN, hacemos un LEFT JOIN, para hacer que el campo por el que cuente sea el de la tabla del lado izquierdo del JOIN, o sea TABLA_TEMP_1. De esa forma los que no existan en TABLA_TEMP_2 los COUNT mostrarán 0.
Responder Con Cita