Que barbaridad !!
Me acabo de dar cuenta de lo tonto que he sido al crear este hilo ....
Mil disculpas Caro ! Está claro que uno se complica la vida y después al ponerlo en un hilo y querer simplificar el hilo al máximo, no se dá uno cuenta de lo que escribe ....
A ver .... la cosa es más complicada que lo explicado, pero entonces ya volvemos a enreversar tanto la explicación que probablemente nadie me entienda
Hago un Select de una tabla con un montón de campos, con una group by de varios campos y una condición posterior en un having by.
Código SQL
[-]Select BO.BOOKINGNO, BO.CATEGORYNO, BO.SUBCATEGORYNO,
C2.PAXNO, SP_AI.OUT_COUNTER
from BOOKINGS_OBJECTSTYPE BO
left join CATEGORIES C1
on C1.CATEGORYNO = BO.CATEGORYNO
and C1.SUBCATEGORYNO = 0
left join CATEGORIES C2
on C2.CATEGORYNO = BO.CATEGORYNO
and C2.SUBCATEGORYNO = BO.SUBCATEGORYNO
left join SP_PAXDETAIL_AUTOINC(BO.BOOKINGNO, BO.CATEGORYNO, BO.SUBCATEGORYNO) SP_AI
on BO.BOOKINGNO = BO.BOOKINGNO
and BO.CATEGORYNO = BO.CATEGORYNO
and BO.SUBCATEGORYNO = BO.SUBCATEGORYNO
where C1.OBJECTRESERVATION = 0
group by BO.BOOKINGNO, BO.CATEGORYNO, BO.SUBCATEGORYNO, C2.PAXNO,
SP_AI.OUT_COUNTER
having Sum(BO.QUANTITY) - (Select Count(BRL.CATEGORYNO) from BOOKINGS_ROOMINGLIST BRL
where BRL.CATEGORYNO = BO.CATEGORYNO
and BRL.SUBCATEGORYNO = BO.SUBCATEGORYNO
and BRL.BOOKINGNO = BO.BOOKINGNO) > 0
Este Select busca en BOOKINGS_OBJECTSTYPE todos los registros y los agrupa por BOOKINGNO, CATEGORYNO y SUBCATEGORYNO.
Cada uno de esos registros tiene una cantidad determinada (QUANTITY) que agrupo a su vez en Sum(QUANTITY), y además obtengo un número de registros en otra tabla adicional relacionada también.
Esta diferencia entre ambos valores, la aplico internamente en un SP denominado SP_PAXDETAIL_AUTOINC para que de cada BOOKINGNO, CATEGORYNO y SUBCATEGORYNO me devuelva N registros dependiendo de esa diferencia anterior.
Y a todo estos resultados, ahora me toca buscar en otra tabla diferente otros registros relacionados por otro campo, y si existen, los devuelvo con sus campos para los N primeros registros que obtuve en la consulta anterior.
Demasiado complicado para entenderlo rápidamente ...
Por eso intenté simplificar al máximo el hilo y no me dí cuenta de la trivialidad que estaba preguntado !!!