在这种情况下如何找到下一个值

什么都不知道

所以有点复杂。

我们在ERP系统中有一个“报告”。这就像来自几个表的大查询......但是,我猜它并不那么重要。我们有数千行。

这只是一个例子:

在此处输入图片说明

如何搜索“下一个传单号码”?因此,如果项目在传单 2015C 和 2016C 中,我想获得“扩展传单”。

这里的逻辑是:如果该项目在实际传单中 +1 = 那是一个“扩展传单”。

2015C: 20实际年份,15是传单的编号。C是传单的类型。

日期是从 2008 年到今天。所以我不能只计算价值(有很多项目有很多传单)。

也许有什么LAG/LEAD

现在我正在使用这个查询,但它不准确(自连接):

decode(null,
  (select count(*) 
   from --my_actual_table g
   where g.id = id 
   and g.place_of_delivery = place_of_delivery 
   and g.partner = partner
   and g.date <= date and g.date >= date-22 
   group by g.id, g.place_of_delivery, g.partner 
   having count(*) > 1 ),
null,'Extended flyer')

有没有更好的方法来做到这一点?

巴尔托什·奥尔乔维克

我创建了一些表格,其中仅包含一列:传单。查询如下所示:

Select flyer,
case when to_number(substr(flyer,3,2))-to_number(substr(previous_flyer,3,2))=1 then 'Extended' else ' ' end
from
(
 Select flyer, 
 LAG(flyer,1) over (order by flyer) as previous_flyer
 from stackoverflow_table
)

检查它及其工作,我得到一个输出:

2015C    
2017C    
2018C   Extended
2019C   Extended
2021C    
2023C    
2024C   Extended
2025C   Extended
2027C    
2029C    
2030C   Extended

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除互相净为零的值,在这种情况下,只剩下一个正数2472320

如何在不提前序列的情况下找到nextval产生的下一个值?

如何在不指定年份的情况下找到下一个最近的日期(月/日/时间)

如何在不知道键的情况下找到下一个词典?

如何在不使用循环或递归的情况下找到下一个更大的正回文?

在这种情况下如何使 TextInput 成为一个单独的组件

在这种情况下如何选择第一个孩子?

不知道在这种情况下如何做一个 while 循环

这种代码为什么起作用,在这种情况下,Delphi如何实例化一个类?

在这种情况下,如何在红宝石上使用下一步?

在这种情况下,如何找到数组的最小索引?

只有在上一个成功的情况下如何启动下一个 bash 文件?

在这种特定情况下,如何使用SQL仅检索与日期字段的最后一个值相关的记录?

Angular - 如何检查回调的下一个值是否是特定值,并在不是的情况下执行某些操作?

RxJS 在不为人知的情况下持有可观察的和下一个最新的值

在这种情况下,我真的需要使用另一个模板

在这种情况下是否可以使用lambda(一个方法接口)?

在这种情况下,pub / sub是一个不错的选择吗?

在这种情况下,使用send()是一个好习惯吗?

错误#6451:在这种情况下,需要一个伪参数名称

在这种情况下,在“ this”前面放一个星号有什么作用?

为什么 ctree 在这种情况下只返回一个终端节点?

在这种情况下,如何返回重复值的数量?

在这种情况下如何获取gridview单元的值

在这种情况下,如何更改变量的值?

在这种情况下如何返回 jinja 值?

如何在不调用“ next_element”方法的情况下使用Nokogiri选择下一个元素?

如何在不等待的情况下获取批处理文件以执行下一个命令

如何在不使用内置函数的情况下获取LinkedList类的下一个指针?