Pues eso... necesitaba una vista que tenía que crearse en tiempo de ejecución para hacer un LEFT JOIN con la tabla de movimientos, y no cai que puede hacer el LEFT JOIN directamente contra una SELECT, por lo tanto, no hay que crear la vista antes, sino usar la SELECT de la vista directamente en el LEFT JOIN.... Os pongo el chorizo por si a alguien le es de utilidad:
Código:
select m.cuenta,
SUBSTRING(M.CLAVE_DEPARTAMENTO FROM 1 FOR 3) as CLAVE_DEPARTAMENTO,
a.DPTO,
a.porcent,
sum(m.DEBE) as DEBE,
Sum(m.HABER) as HABER
from asientos m left join
(select CUENTA,
SUBSTRING(CLAVE_DEPARTAMENTO FROM 1 FOR 3) as DPTO,
SUM(PORCENTAJE) AS PORCENT
FROM analitica GROUP BY 1, 2) a
on m.cuenta = a.cuenta and m.clave_departamento is null
where m.ejercicio = 2008
AND (A.DPTO <> '' OR M.CLAVE_DEPARTAMENTO <> '')
AND M.COD_EMPRESA = 1
group by 1, 2, 3, 4
En la cláusula WHERE de la SELECT del LEFT JOIN puedo meter las opciones de búsqueda que deseo, así como variar la longitud de la CLAVE de departamento en tiempo de ejecución.
Gracias de nuevo por vuestra ayuda.