Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 在oracle中向“选择查询结果日期”添加天数_Date_Oracle12c - Fatal编程技术网

Date 在oracle中向“选择查询结果日期”添加天数

Date 在oracle中向“选择查询结果日期”添加天数,date,oracle12c,Date,Oracle12c,选择from_date_su_rela,至from RELATION_date_su_rela 但预期从第一行开始,从第二行开始减少-56天,并将最后一行(第三行)的+56天添加到第三行。如下 我写了一个问题 从关系中选择日期与关系-56,到日期与关系+56;但其从所有行中添加和减少天数如下所示 如何使其与上面的第二幅图像一样工作。一个选项是使用行数分析函数对数据进行升序和降序排序,以找到第一行和最后一行,然后在case语句中执行加减运算 select case when rn_asc =

选择from_date_su_rela,至from RELATION_date_su_rela

但预期从第一行开始,从第二行开始减少-56天,并将最后一行(第三行)的+56天添加到第三行。如下

我写了一个问题

从关系中选择日期与关系-56,到日期与关系+56;但其从所有行中添加和减少天数如下所示


如何使其与上面的第二幅图像一样工作。

一个选项是使用
行数
分析函数对数据进行升序和降序排序,以找到第一行和最后一行,然后在
case
语句中执行加减运算

select case when rn_asc = 1
            then from_date_su_rela - 56
            else from_date_su_rela
         end from_date_su_rela,
       case when rn_desc = 1
            then to_date_su_rela + 56
            else to_date_su_rela
         end to_date_su_rela
  from (
      select from_date_su_rela,
             to_date_su_rela,
             row_number() over (order by from_date_su_rela desc) rn_desc,
             row_number() over (order by from_date_su_rela asc) rn_asc
        from relation_t
  )

您如何知道要从第一行减去,然后添加到第三行?总是正好有三排吗?如果有更多行或更少行,您将添加到哪一行?第三个?最后?还有别的吗?你如何定义“第一”和“第三”?您是按日期开始的
订购的吗?截止日期的
?或者其他栏目?是的,按起始日期排序。行始终是第一行和最后一行。每次不是三排,可能是一排,也可能是多排。因此,您希望从第一行减去,然后添加到最后一行。不一定是第三排。如果只有一行,我假设你想在那一行上加减?是否可能有两行具有相同的
起始日期
?如果是,如何处理关系?起始日期是主键。因此,没有两行具有相同的起始日期。如果要显示相同表关系的其他列,如abc、xyz等。。我可以在其中添加这些列。@165700-您可以将它们添加到内联视图和外部选择中。