Sql Oracle Apex日历订购记录
我正在为流程实现预订工具。你们可以使用库存——若你们想预订一天的上午和下午时段,那个么这一天的时段已经用完了。然后,当显示日历时,它会显示所有现有预订,例如,显示该房间在特定时间段内不可用 我遇到的困难是,返回的条目并没有按顺序显示,所以在“am”槽之后是“PM”槽。这一切看起来都很随机,可能会让最终用户感到困惑Sql Oracle Apex日历订购记录,sql,oracle,oracle-apex,Sql,Oracle,Oracle Apex,我正在为流程实现预订工具。你们可以使用库存——若你们想预订一天的上午和下午时段,那个么这一天的时段已经用完了。然后,当显示日历时,它会显示所有现有预订,例如,显示该房间在特定时间段内不可用 我遇到的困难是,返回的条目并没有按顺序显示,所以在“am”槽之后是“PM”槽。这一切看起来都很随机,可能会让最终用户感到困惑 SELECT * FROM ( select query to select room 1 where slot is AM UNION ALL query to selec
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语句造成的
解决此问题的最佳方法是什么?在内部查询中添加一列,并按该列对插槽进行排序,如下所示:
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
在对解决这个问题失去希望后,我意外地发现了这个问题的解决方案。基本上,Apex日历依赖于日期列,但如果一天分配了多条记录,则它会以随机顺序显示这些记录。有些人建议添加另一个列,以便在其中添加一些顺序,但是这会产生另一层不必要的复杂性。解决方案:
SELECT ename, hiredate + rownum / 24 / 60 FROM
(SELECT ename, hiredate
FROM emp
ORDER BY ename)
通过将rownum参数添加到日期列,Apex可以检测到记录之间的差异,然后突然间,一切都按正常顺序运行 阿伦:谢谢你的回答。不幸的是,这种方法不起作用。@Lomo_效应当使用这种解决方案时,到底还有什么问题?或者您在实现它时有困难吗?很抱歉,我应该详细说明一下。我主要关心的是按顺序(AM、AM、PM、PM)检索记录。上面的查询确实有效,但它不能按正确的顺序对结果进行排序。这不是纯粹的SQL问题,因为这个解决方案需要通过APEX日历工具来实现。@Lomo_效应,仍然不清楚为什么您认为这个解决方案不起作用。“订单(上午、上午、下午、下午)”没有意义。也许您应该发布示例数据、获得的结果、使用的确切查询以及预期结果。