我在 Sybase SQL Anywhere 数据库中有一个表,该表具有以下结构(已删除非必要字段),该表由在工作日期间打开和关闭的零售商店寄存器填充。许多天的历史记录都保存在表中,并且在一天开始时,寄存器的状态被假定为关闭。“OPENTILL”表示打开业务登记簿,“CLOSETILL”表示关闭它:
Register Transaction_Date Transaction_Time Transaction_Type
1 2013-02-25 08:00:00.000 OPENTILL
2 2013-02-25 08:01:00.000 OPENTILL
3 2013-02-25 08:02:00.000 OPENTILL
2 2013-02-25 09:00:00.000 CLOSETILL
3 2013-02-25 09:01:00.000 CLOSETILL
2 2013-02-25 10:00:00.000 OPENTILL
4 2013-02-25 11:00:00.000 OPENTILL
3 2013-02-25 12:00:00.000 OPENTILL
2 2013-02-25 13:00:00.000 CLOSETILL
1 2013-02-25 14:00:00.000 CLOSETILL
3 2013-02-25 15:00:00.000 CLOSETILL
4 2013-02-25 20:00:00.000 CLOSETILL
这只是样本数据,实际寄存器数量超过 4 个。我要提取的数据是每天同时打开的寄存器的最大数量,即这样的表:
Date Max_Concurrent_Registers
2013-02-25 14
2013-02-24 9
2013-02-23 12
2013-02-22 8
仅使用相当基本的 Sybase SQL 就可以做到这一点——即聚合函数、“WITH x AS (...)”、子选择,但没有游标或存储过程?
感谢您的任何帮助