Details
Description
Compiling this (broken) query
WITH
|
INN_ID_MAX AS 9000,
|
INN_BRAND_ID AS 'MS',
|
ARRIVAL_START AS '2017-01-01',
|
ARRIVAL_END AS '2017-12-31',
|
RATE_CODE AS 'RACK',
|
RATE_CATEGORY_EXCEPT AS 'HID',
|
inn_idr as (
|
SELECT
|
inn_idr.inn_id, inn_idr.arrival_date, inn_idr.Ovr, inn_idr.Avail, inn_idr.RGrp, inn_idr.AGrp, inn_idr.RmsHld, inn_idr.Blocked, inn_idr.Resvd, inn_idr.Oos,
|
r.rate_1_person, r.wkend_rate1_person,
|
substr(r.start_date, 7, 4) || '-' || substr(r.start_date, 1, 2) || '-' || substr(r.start_date, 4, 2) r_start_date,
|
substr(r.end_date, 7, 4) || '-' || substr(r.end_date, 1, 2) || '-' || substr(r.end_date, 4, 2) r_end_date
|
|
FROM (
|
SELECT
|
inn_id,
|
substr(arrival_date, 7, 4) || '-' || substr(arrival_date, 1, 2) || '-' || substr(arrival_date, 4, 2) arrival_date,
|
default_room_type,
|
sum(tobigint(idr.overbooking)) Ovr,
|
sum(tobigint(idr.available)) Avail,
|
sum(tobigint(idr.group_reserved)) RGrp,
|
sum(tobigint(idr.group_allotment)) AGrp,
|
sum(tobigint(idr.rooms_held)) RmsHld,
|
sum(tobigint(idr.blocked)) Blocked,
|
sum(tobigint(idr.reserved)) Resvd,
|
sum(tobigint(idr.out_of_service)) Oos
|
|
FROM inn
|
LEFT OUTER JOIN inn_daily_rooms idr
|
ON inn.inn_id = idr.inn_id
|
WHERE tobigint(inn.inn_id) < INN_ID_MAX AND inn.brand_id = INN_BRAND_ID AND inn.valid_inn = '1'
|
AND tobigint(idr.inn_id) < INN_ID_MAX AND idr.brand_id = INN_BRAND_ID
|
AND substr(idr.arrival_date, 7, 4) || '-' || substr(idr.arrival_date, 1, 2) || '-' || substr(idr.arrival_date, 4, 2)
|
BETWEEN ARRIVAL_START AND ARRIVAL_END
|
|
GROUP BY inn.inn_id, idr.arrival_date, inn.default_room_type
|
)
|
|
SELECT
|
t.inn_id, t.arrival_date, RATE_CODE as rate_code, t.rate_1_person, t.wkend_rate1_person, t.Ovr, t.Avail, t.RGrp, t.AGrp, t.RmsHld, t.Blocked, t.Resvd, t.Oos
|
|
FROM inn_idr
|
|
LEFT OUTER JOIN fols_rate_table rt
|
ON inn_idr.inn_id = rt.inn_id AND substr(inn_idr.arrival_date, 1, 4) = rt.year
|
|
LEFT OUTER JOIN fols_rates r
|
ON rt.inn_id = r.inn_id AND rt.year = r.year AND inn_idr.default_room_type = r.room_type_cd
|
|
WHERE tobigint(rt.inn_id) < INN_ID_MAX AND rt.brand_id = INN_BRAND_ID AND
|
rt.rate_code = RATE_CODE AND rt.category <> RATE_CATEGORY_EXCEPT AND
|
|
tobigint(r.inn_id) < INN_ID_MAX AND r.brand_id = INN_BRAND_ID AND r.rate_code = RATE_CODE
|
) t
|
|
WHERE t.arrival_date BETWEEN t.r_start_date AND t.r_end_date
|
|
ORDER BY t.inn_id, t.arrival_date
|
|
LIMIT 50
|
throws the exception
Exception: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
|