我需要识别航班中的紧急出口座位。如果不需要向用户显示警告消息,我需要识别是否有任何行/单元至少有一个座位应该被占用。我从下面的堆栈跟踪中得到了解决方案。但问题是在解决方案行中硬编码,如'ABC','DEF'。但问题是一些航班行定义为'ABC','HJK'.如何使这个充满活力.我试过了,但它不工作
所有的细节和答案,我已经提到了下面的堆栈跟踪。因为它的一种新的问题,我已经开始
enter link description here
由于所有的要求,我已经要求在上述线程。我没有提供完整的细节,如测试数据和查询。
请让我知道如果你需要更多的细节。如果需要,我会再次提供所有的测试数据。
2条答案
按热度按时间alen0pnh1#
如何使其具有动态性?
您需要知道每个航班的出口座位在哪里。这可能是存储在另一个表中的数据,也可能是从外部源获取的数据(然后您应该问为什么它没有存储在表中)。不要在每次运行查询时都试图动态地将退出席位传递到查询中;只需将这些信息存储在一个表中,因为航空公司不太可能为每次飞行重新配置飞机上的座位,因此您只需为每架飞机设置一个标准配置即可(或者甚至是每个机身模型/航空母舰组合,因为它们可能使用标准化布局)。
假设您有一个列出每个特定航班的所有座位的表(如果没有,则创建该表),则可以添加一列,说明某个座位是否属于一组出口座位:
字符串
然后,您可以使用以下命令查找未分配的出口座位:
型
其中,对于样本数据:
型
产出:
| 航班_编号|航班_日期|未占用_出口_座位|
| --|--|--|
| FN| 2023年10月30日上午10:11:59| 4DEF、12 ABC标准配置|
fiddle
tkqqtvp12#
计算座位组。
将座位编号转换为行和列,然后您可以找到每行的最大列值。由于无法指定实际的座位组,因此如果您假设座位将位于左侧或右侧座位组中,并且左侧座位组将位于座位列下半部分的列中,从最大列值开始测量,并且正确的座位组将位于列的上半部分,同样基于最大值,然后您可以使用该值将各个座位分配给组。
考虑到所有这些,您可以聚合并使用
HAVING
子句来过滤没有占用座位的座位组:字符串
其中,对于样本数据:
型
产出:
| 航班号|航班日期|出口处座位|
| --|--|--|
| FN| 2023-10-30 13:00:43| 4DEF|
| FN| 2023-10-30 13:00:43| 12ABC|
fiddle