Ver Mensaje Individual
  #1 (permalink)  
Antiguo 08/04/2015, 10:45
Avatar de JuJoGuAl
JuJoGuAl
 
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Simple LEFT JOIN no Funciona

Buenas tardes amigos para explicar mi problema les comentare las tablas que tengo:
tengo 3 tablas

sol_serv
cliente_cod,paciente_cod,articulo_cod,monto

clientes
cliente_cod,cliente,cliente_tipo

servicios
articulo_cod,articulo,depart

En la tabla clientes tengo una lista parcial de los clientes donde en el tipo tengo datos como (EMPRESA,PDVSA,FUNDACION,SEGUROS) asumiendo que el cliente que no este en esa tabla es un cliente particular. (esto es porque la bd original es oracle y hago un dump de lo que necesito)

entonces ya he hecho un query donde obtengo todo el monto en bsf de lo que me consumieron los seguros así:
Código MySQL:
Ver original
  1. SELECT SUM(sol.monto)as monto, COUNT(s.dep) as cuenta, COUNT(DISTINCT sol.paciente) as pacientes FROM solc_servicios sol INNER JOIN sadmint_clientes c ON sol.cliente=c.cod_resp INNER JOIN sadmint_servicios s ON sol.articulo=s.cod_serv WHERE YEAR(sol.fecha)=$year AND MONTH(sol.fecha)=$month AND s.dep='LAB' AND C.TIPO='SEGUROS'

repitiéndolo para los otros clientes...

Ahora busco el monto de los clientes Particulares, que no es mas que un LEFT JOIN (datos que aparecen en sol_serv pero no en clientes)

Código MySQL:
Ver original
  1. SUM(sol.monto) as monto,
  2. COUNT(s.dep) as cuenta,
  3. COUNT(DISTINCT sol.paciente) as pacientes
  4. FROM solc_servicios sol
  5. LEFT JOIN sadmint_clientes c
  6. ON sol.cliente=c.cod_resp
  7. INNER JOIN sadmint_servicios s
  8. ON sol.articulo=s.cod_serv
  9. YEAR(sol.fecha)=2015
  10. MONTH(sol.fecha)=02
  11. AND s.dep='BANCO DE SANGRE' AND C.TIPO NOT IN ('SEGUROS','EMPRESAS','PDVSA','FUNDACION')

Pero me trae NULL, pruebo en vez de SUMAR y CONTAR, listar y salen todos los NULLS que son los montos que pretendo sumar y contar.

Entonces como obtengo el valor que busco? porque el MINUS que es un JOIN que puede servirme no lo soporta MySQL...