标题中的问题很难概括,所以在文本中检查img的视觉解释。
我不能把两张table连在一起。第一个表的日期( startdatetable
)应该在另一个表中获得下一个/最近的日期( enddatetable
). 由于大多数行都有一个 startdate
可以找到下一个 enddate
,在另一个之前 enddate
有新的吗 startdate
.
但是,如果有两个 startdate
只有一个 enddate
提供给 startdate
s将加入相同的 enddate
.
我想做的是,如果一个日期已经在前一行中使用过,它就不应该在下一行中使用。
我想要的行高亮显示。
我开始使用的sql
select *
from (
select rank() over (partition by tid order by enddate asc) as rnk
, id, startdate, enddate
from startdateTable
inner join enddateTable on startdateTable.ID = enddateTable.id
and enddateTable.enddate > startdateTable.startdate
) q
where q.rnk = 1
我得到了以下结果。最后一行应该是2100年的日期,因为前一行使用的是2020-06年的日期。
1条答案
按热度按时间a14dhokn1#
如果您有两个表,并且希望将它们对齐,那么可以使用
row_number()
: