我试过好几次想弄明白这个问题,但都没有成功。
我正试图查询一个表。
invno(主键)、custid、invamt、datepd
我想把所有连续三个会计年度至少支付过一张发票的客户都拉过来。本例的会计年度为次年8月1日至7月31日。invno是唯一的,但是custid可以出现多次,这取决于他们支付了多少发票。有人能帮我吗?
对于输出,我需要每个custid一个记录,以及custid连续多少年支付了一张发票。
客户号333连续7年
我试过好几次想弄明白这个问题,但都没有成功。
我正试图查询一个表。
invno(主键)、custid、invamt、datepd
我想把所有连续三个会计年度至少支付过一张发票的客户都拉过来。本例的会计年度为次年8月1日至7月31日。invno是唯一的,但是custid可以出现多次,这取决于他们支付了多少发票。有人能帮我吗?
对于输出,我需要每个custid一个记录,以及custid连续多少年支付了一张发票。
客户号333连续7年
1条答案
按热度按时间rmbxnbpk1#
你可以通过减去8个月或者加上4个月来提取年份。那么,
lag()
可以解决问题:最里面的子查询只获取成对的客户和年份。这个
lag()
看后面两排。如果“后面两排”正好是2年前的话,那就是3年了。