Llevo un par de horas dando vueltas a esta consulta y no logro sacarla, solicito ayuda a quien me pueda orientar.
Tengo dos tablas.
*ORDENES
-----------------------------------------
ORDEN || Fecha || Contratista ||
-----------------------------------------
10 || 14/05/2008 || 1.200 ||
20 || 15/05/2008 || 2.400 ||
30 || 20/05/2008 || 5.700 ||
40 || 16/05/2008 || 1.200 ||
50 || 15/05/2008 || 2.400 ||
*ESTADOS
---------------------------------------------------
ORDEN || Fecha_Cierre || Estado ||
----------------------------------------------------
10 || 20/05/2008 || E ||
20 || 15/07/2008 || N ||
30 || 20/08/2008 || P ||
40 || 16/05/2008 || N ||
50 || 15/05/2008 || E ||
Necesito generar una consulta que me arroje el siguiente listado contabilizando por estado (E,N,P) agrupando por fecha:
-------------------------------------------------------------------------------------
Fecha || Contratista || Cuenta_E || Cuenta_N || Cuenta_P ||
-------------------------------------------------------------------------------------
15/05/2008 || 2.400 || 1 || 1 || 0 ||
Logre armar un QUERY de este tipo pero no logro afinar la cuenta por los distintos estados.
Código:
SELECT RESULT.fecha, (SELECT COUNT(E.estado) FROM estados as E WHERE E.estado= 'E') AS E, (SELECT COUNT(E.estado) FROM estados as E WHERE E.estado= 'N') AS N, (SELECT COUNT(E.estado) FROM estados as E WHERE E.estado= 'P') AS P FROM estados as E INNER JOIN ( SELECT OT.fecha, OT.orden FROM ordenes as OT WHERE 1=1 and OT.contratista = 2.400 and OT.fecha BETWEEN '14/05/2008' AND '20/05/2008' ) AS RESULT ON RESULT.orden= E.orden GROUP BY RESULT.fecha
Agradezco de ante mano cualquier ayuda que me puedan dar