Ver Mensaje Individual
  #1  
Antiguo 15-07-2008
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Reputación: 21
gluglu Va por buen camino
Consulta en Firebird 2.1 e Interbase 7.5

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
__________________
Piensa siempre en positivo !
Responder Con Cita