【发布时间】:2014-08-04 21:30:26
【问题描述】:
我需要创建一个将返回以下内容的 case 语句
Cust_id Indicator Date Case
101 Y 5/1/2014 5/1/2014
101 Y 5/4/2014 5/4/2014
101 Y 5/8/2014 5/8/2014
101 N 5/8/2014 5/8/2014
101 N 5/12/2014 5/8/2014
101 N 5/14/2014 5/8/2014
101 Y 5/18/2014 5/18/2014
Indicator 列将在 Y 和 N 之间交替。当列是 Y 时,它会抓取日期并将其返回到 case 列中。当前一个指标是 Y 并且当前指标是 N 时,它会抓取前一个日期,并且该日期将继续,直到遇到另一个 Y。在上面的例子中,我不确定如何让 2014 年 5 月 8 日继续下去,直到我击中下一个 Y(2014 年 5 月 18 日)。
抱歉,这很复杂,但上表应该有助于澄清。我想我需要使用子查询和窗口函数,但我完全没有想法。我已经为此工作了几个小时,我的同事没有想法,所以非常感谢任何帮助。
提前谢谢你。
【问题讨论】:
标签: sql window-functions case-statement