1

我正在为流程实施预订工具。您可以使用库存 - 如果您想预订一天的上午和下午时段的流程正在用完。然后当显示日历时,它会带来所有现有的预订,例如显示该房间在特定时间段内不可用。

我遇到的困难是,返回的条目不是按顺序显示的,所以在“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

这是我使用的查询结构。它正确返回条目,但不按顺序返回。我认为这是由于嵌套的选择语句。

解决此问题的最佳方法是什么?

4

2 回答 2

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
于 2013-01-22T10:00:50.910 回答
1

在对解决这个问题失去希望后,我不小心偶然发现了该问题的解决方案。基本上 Apex 日历依赖于日期列,但如果有多个记录分配给一天,那么它会以随机顺序显示它们。有些人建议添加另一列以添加一些排序,但这会产生另一层不必要的复杂性。解决方案:

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

通过将 rownum 参数添加到日期列 Apex 可以获取记录之间的差异,并且突然间一切正常,因为它应该按照正常顺序进行。

于 2013-02-05T11:27:15.040 回答