En ib 6.0 lo he solucionado creando una vista (con un solo select es imposible) y luego haciendo un select de la vista y agrupando.
En otros motores si es perfectamente válido usar la expresión. En firebird 1.5 no lo he intentado, puesto que todo ha venido de ib 6 y sigo con la misma mecánica de trabajo.
Hasta luego.