对于从Oracle DB表中获取每个Product记录,我需要生成给定编号范围内下一个可用编号。在生成下一个编号时,只要给定编号范围内有未使用编号,就不涉及条件检查。当它已经到达给定编号范围内最后一个编号时,它应该从头开始重复,但是从这个时候开始,它应该基于条件检查来生成它。
我将试着用简单的方式表达我的要求。
使用的序列号范围:1-3(1至3)
PRODUCT表中的数据:
Name Start Date End Date
P1 1-Nov
P2 1-Nov 5-Nov
P3 1-Nov
P4 2-Nov
p2 2-Nov
字符串
让我们说没有结束日期的产品是活跃的产品,有结束日期的产品是不活跃的产品。
预期输出:
Name Start Date End Date SequenceNumber Comment
P1 1-Nov 1 No conditional check
P2 1-Nov 5-Nov 2 No conditional check
P3 1-Nov 3 No conditional check
P4 2-Nov 2 Sequence should start from 1 again but with condition check while generating sequence. Condition: If the generated number is used in any other active product, move on to next number
p2 2-Nov In this case, all 1, 2, 3 are mapped to active products. so no sequence is generated.
型
问:如何使用select语句获得所需的输出?这将是有帮助的,如果你能建议一些方法。谢谢。
1条答案
按热度按时间qqrboqgw1#
嗯,它看起来像行间-列间处理,这意味着你可以使用Oracle's MODEL Clause。它的工作原理很像excel工作表寻址单个单元格。