重叠的日期

时间:2019-04-19 13:16:45

标签: sql oracle lag lead

*编辑-没有更新权限。

我有下表:一个ID仅应与一个区域关联。 TableB上有重叠。因此,John 1/9/19与区域East和MidEast相关联。

我可以操纵TableB来解决重叠问题吗?

因此,最旧的行$('#add_more').click(function() { if (max < 2) { $("#files_container").append( $("<div>", {'class':'filediv'}).fadeIn('slow').append( $("<input>", {'class': 'file', name: 'file[]', type: 'file'}) ) ); max++; } });

可能有一天以上的重叠。

在这里使用

enddate (1/9/19) would change to 1/7/19.Lead?不知道从哪里开始。

TableA

Lag

TableB

CustDate   id   Name
1/9/19      1   John

示例SQL

StartDate   EndDate      AREA
 1/1/2019    1/9/19      East
 1/8/2019    12/31/4000  Mideast

2 个答案:

答案 0 :(得分:2)

您可以通过更新library(dplyr) CJgroup %>% select(PurchaseID, date) %>% group_by(PurchaseID) %>% summarise(difference = as.numeric(max(date) - min(date))) # A tibble: 4 x 2 PurchaseID difference <int> <dbl> 1 1 1 2 2 0 3 3 0 4 4 0 来修复TableB

enddate

或者,将其表示为update tableb b set enddate = (select min(startdate) - interval '1' day from tableb b2 where b2.startdate > b.startdate );

select

答案 1 :(得分:0)

也许LeadLag

如下所示:

  ,CASE
   WHEN ENDDATE > LEAD(STARTDATE) OVER (PARTITION BY ID ORDER BY STARTDATE) 
   THEN LEAD (STARTDATE) OVER (PARTITION BY ID ORDER BY STARTDATE) -1
               ELSE ENDDATE
               END END_DT