我正在实施流程预订工具。您可以使用库存 - 如果您想预订当天的过程,那么今天的PM时段正在用完。然后,当显示日历时,它带来所有现有预订,例如显示该房间在特定时间段内不可用。
我遇到的困难是,返回的条目不按顺序显示,因此'PM'插槽后的“AM”插槽。这一切似乎都很随机,可能会让最终用户感到困惑。
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
这是我使用的查询结构。它正确返回条目但不按顺序返回。我认为这是由于嵌套的select语句。
解决此问题的最佳方法是什么?
答案 0 :(得分: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
答案 1 :(得分:1)
在失去希望过来这个问题之后,我不小心偶然发现了问题的解决方案。基本上Apex日历依赖于日期列,但如果分配给一天的多个记录,则它以随机顺序显示它们。有些人建议添加另一列来添加一些排序,但这会产生另一层复杂性,这是不必要的。解决方案:
SELECT ename, hiredate + rownum / 24 / 60 FROM
(SELECT ename, hiredate
FROM emp
ORDER BY ename)
通过将rownum参数添加到日期列Apex可以获取记录之间的差异,突然一切正常,因为它应该是正常的顺序。