Hola.
Si la consulta funciona bien en el EMS, no tiene porqué fallar en Delphi. Seguramente será un problema de los componentes de acceso. ¿ cuales usas ?.
Respecto a la consulta, obtendrás exactamente el mismo resultado si quitas el DISTINCT de la subconsulta, y facilitas que el motor busque la mejor optimización de la consulta.
Tampoco es necesaria la utilización de una subconsulta, esta consulta debe darte el mismo resultado :
Código SQL
[-]
SELECT DISTINCT SUMEMB.*
FROM SUMEMB
INNER JOIN DETTRA ON (SUMEMB.DOCTO = DETTRA.NUMTRA) AND
(SUMEMB.TDAORI = DETTRA.TDAORI) AND
(SUMEMB.TDADES = DETTRA.TIENDA)
WHERE ((SUMEMB.FECHA >= '08/01/2004') AND
(SUMEMB.FECHA <= '08/31/2004') AND
(SERDOC = 'P')) AND
((EDOEMB = '') OR
(EDOEMB = 'E')))
Finalmente si utilizas Interbase 6, te recomiendo que pases a Interbase 7 o Firebird (este último es gratuito).