Tengo 3 tablas que necesito consultar:
Clientes
Código MySQL:
Servicios:Ver original
+------------+------------+-------------+--------------------------------------- -+-------+-----+ | codigo | cod_resp | cod_cliente | nombre | tipo | act | +------------+------------+-------------+--------------------------------------- -+-------+-----+ | 0000000001 | 0000002503 | J001230726 | PDVSA PETROLEO, S.A. - PLANES DE SALUD | PDVSA | V | | 0000000002 | 0000002562 | J000123072 | PDVSA DESARROLLO SOCIAL SUSTEN | PDVSA | V | | 0000000003 | 0000000178 | J000000130 | PDVSA - LAS SALINAS | PDVSA | V | | 0000000004 | 0000000180 | J000000132 | PDVSA - CARDON | PDVSA | V | | 0000000005 | 0000000181 | J000000133 | PDVSA - AMUAY | PDVSA | V | +------------+------------+-------------+--------------------------------------- -+-------+-----+
Código MySQL:
y Sol_serviciosVer original
+------------+------------+-------------+--------------------------------------- -+-------+-----+ | codigo | cod_resp | cod_cliente | nombre | tipo | act | +------------+------------+-------------+--------------------------------------- -+-------+-----+ | 0000000001 | 0000002503 | J001230726 | PDVSA PETROLEO, S.A. - PLANES DE SALUD | PDVSA | V | | 0000000002 | 0000002562 | J000123072 | PDVSA DESARROLLO SOCIAL SUSTEN | PDVSA | V | | 0000000003 | 0000000178 | J000000130 | PDVSA - LAS SALINAS | PDVSA | V | | 0000000004 | 0000000180 | J000000132 | PDVSA - CARDON | PDVSA | V | | 0000000005 | 0000000181 | J000000133 | PDVSA - AMUAY | PDVSA | V | +------------+------------+-------------+--------------------------------------- -+-------+-----+
Código MySQL:
Esos servicios ejecutados (solc_servicios) estan clasificados por un departamento que aparece en la tabla sadmint_servicios, y otra clasificacion que es el tipo de cliente que aparece en la tabla sadmint_clientes.Ver original
+------------+------------+------------+------------+--------+------------------ --+-------------------+------------+------------+----------+--------+----------- -+ e | unidad_ejecutante | fecha | articulo | cantidad | precio | admision | +------------+------------+------------+------------+--------+------------------ --+-------------------+------------+------------+----------+--------+----------- -+ | 0000000001 | 0000002503 | 0003745605 | 0000092416 | A | TINT | TINT | 2015-02-02 | I000003710 | -1.00 | 352.00 | 0000914578 | | 0000000002 | 0000002503 | 0003745605 | 0000092416 | A | TINT | TINT | 2015-02-02 | I000003710 | -1.00 | 352.00 | 0000914578 | | 0000000003 | 0000067215 | 0003715801 | 0000295923 | C | ADMC | QUIR | 2015-02-10 | I000003710 | 1.00 | 352.00 | 0000916646 | +------------+------------+------------+------------+--------+------------------ --+-------------------+------------+------------+----------+--------+----------- -+
Por tal debo de hacer un Inner Join donde capture los datos de estos clientes para los departamentos.
En departamentos manejo unos cuantos (laboratorio, banco de sangre, resonancia, etc) y en tipo de cliente manejo (seguros, empresas, particular...)
Entonces pense en armar un array (en php) donde se encuentren cada unidad
Código PHP:
y en un clico foreach hacer este SQL:Ver original
Código MySQL:
haciendo uno por cada tipo de cliente.Ver original
SELECT SUM(sol.cantidad*sol.precio)as monto, SUM(sol.cantidad) 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='$departamento' AND C.TIPO='$Tipo_Cliente'"
Pero me da la impresion que el proceso es lento y nose si existirá una forma mas viable/rápida/eficaz de hacer esto que hago.
Si se necesita saber que es lo que quiero necesito:
-Monto total de estudios por cada Departamento (segun tipo de cliente)
-Cantidad de estudios por departamento (segun tipo de cliente)
-Cantidad de pacientes por departamento (segun tipo de cliente)
Alguien podria darme una mano con esto? Gracias