2013-01-22 2 views
1

Я внедряю инструмент бронирования для процесса. Есть инвентарь, который вы можете использовать - если вы хотите заказать процесс за день, то AM и PM слот этого дня исчерпаны. Затем, когда отображается календарь, он отображает все существующие заказы, например, что эта комната недоступна в определенный период времени.Oracle Apex Календарь записи заказов

Сложность У меня есть, это возвращаемые записи, которые отображаются НЕ для того, чтобы слот «AM» после слота «PM». все это кажется довольно случайным, что может быть запутанным для конечного пользователя.

SELECT * FROM 
(
select 

query to select room 1 where slot is AM 

UNION ALL 

query to select room 1 where slot is PM 

UNION ALL 

query to select room 2 (this room can be booked only for whole day) 

) 

ORDER BY slot ASC 

это структура запроса, который я использовал. Он возвращает записи правильно, но не в порядке. Я предполагаю, что это связано с вложенными выборами.

Каков наилучший подход для решения этой проблемы?

ответ

1

Потеряв надежду на более прийти эту проблему, я случайно наткнулся на решение проблемы. В основном календарь Apex зависит от столбца даты, но если для одного дня назначено более одной записи, то они отображаются в случайном порядке. Некоторые люди предложили добавить еще один столбец, чтобы добавить в него некоторый порядок, однако это создало бы еще один уровень сложности, который не нужен. Решение:

SELECT ename, hiredate + rownum/24/60 FROM 
(SELECT ename, hiredate 
    FROM emp 
    ORDER BY ename) 

путем добавления параметра RowNum на сегодняшний день столбца Apex может забрать разницу между записями и вдруг все работает, как это должно быть с нормальным порядком путем.

1

Добавление столбца внутренних запросов и порядок слотов также по этой строке, например:

SELECT * FROM 
(
    select 'AM' time_of_day, 
    query to select room 1 where slot is AM 
    UNION ALL 
    select 'PM' time_of_day, 
    query to select room 1 where slot is PM 
    UNION ALL 
    select 'WHOLE' time_of_day, 
    query to select room 2 (this room can be booked only for whole day) 
) 
ORDER BY slot ASC, time_of_day 
+0

Alen благодарит вас за ответ. К сожалению, этот подход не работает. –

+0

@Lomo_effect Что еще не так при использовании этого решения? Или у вас есть трудности с его внедрением? – Tom

+0

Прошу прощения, я должен указать его больше. Моя основная проблема заключается в том, чтобы извлекать записи в ORDER (AM, AM, PM, PM). Выше запрос работает, однако он не сортирует результаты в правильном порядке. Это не просто вопрос SQL, поскольку это решение должно быть реализовано с помощью инструмента календаря APEX. –