Hola a tod@s !
Me he topado con que esta consulta me funciona en Interbase 7.5 pero no me funciona en Firebird 2.1
Código SQL
[-]Select BO.DATEFROM, BO.DATETO, CA2.CATEGORYNO,
(Select Count(*) from OBJECTS OB
left join CATEGORIES CA1
on OB.CATEGORYNO = CA1.CATEGORYNO
and CA1.SUBCATEGORYNO = 0
where OB.BUILDINGNO = 1
and CA1.CATEGORYNO = BO.CATEGORYNO) as SumCount
from BOOKINGS_OBJECTS_TEMP BO
left join CATEGORIES CA2
on BO.CATEGORYNO = CA2.CATEGORYNO
and CA2.SUBCATEGORYNO = 0
where CA2.DIVISIONTYPE = 0
and CA2.OBJECTRESERVATION = 0
group by BO.DATEFROM, BO.DATETO, CA2.CATEGORYNO
Sin entrar demasiado en detalles de qué es lo que devuelve la consulta, voy al error que me lanza Firebird cuando ejecuta la consulta : 'Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause).'
El error está en el campo coloreado en negrita. Al parecer no puedo incluir ese campo que es parte de la consulta posterior en Firebird, en cambio en interbase si me lo permite.
Si cambio BO.CATEGORYNO en la subconsulta de la suma por un valor cualquiera (p.ej. 1) si me funciona en Firebird.
A lo mejor alguien me puede ayudar en la solución para Firebird.
Lo que trato es de obtener junto con una consulta agrupada por tres campos diferentes, el número total de registros (en la subconsulta) por cada una de esas agrupaciones.
Gracias por vuestros consejos