SQL获取30天宽限期的最后一个季度的记录

时间:2018-10-04 15:07:19

标签: mysql sql oracle plsql

我想找到上个季度未备案的公司记录,但我希望提供30天的宽限期。从2018年10月30日起,不应获取company_seq。我无法执行宽限期部分。有人可以帮我吗?

还有更多要考虑的事情是,如果上一个季度(即第二季度)的备案没有完成,则应提取公司顺序

样本数据

Company_seq YEAR    QUARTER
1           2018    2
1           2018    3
2            2018   2
2           2018    1
3          2018 1

Company_SEQ COMPANY_NAME    
1           Company 1   
2          Company2 
3           Company3    



SELECT * FROM COMPANY 
WHERE company_seq NOT IN 
    (SELECT DISTINCT company_seq 
        FROM Filing F
        WHERE YEAR = (SELECT TO_CHAR(add_months(sysdate,-3),'YYYY') from dual)
        AND quarter=(SELECT TO_CHAR(add_months(sysdate,-3),'Q') from dual)

预期的查询输出:

3, Company3

2 个答案:

答案 0 :(得分:0)

我尝试了以下查询,但确实有效

SELECT * FROM Temp_Company_Neha 
WHERE company_seq NOT IN( 
SELECT DISTINCT company_seq     FROM Temp_Neha dehp 
              WHERE YEAR = (SELECT TO_CHAR(add_months(sysdate,-3),'YYYY') from dual)
              AND quarter=(SELECT TO_CHAR(add_months(sysdate - 30,-3),'Q') from dual));

答案 1 :(得分:-1)

我在想这样的事情:

select c.company_seq
from company c
group by c.company_seq
having add_months(max(add_months(to_date(year || '0101', 'YYYYMMDD'), 3 * c.quarter)), 1) < sysdate

内部add_months()将年份/季度转换为下一个季度的开始。外部add_months()是宽限期。