SQL-запрос по датам - PullRequest
       13

SQL-запрос по датам

0 голосов
/ 27 декабря 2018

У меня проблема с запросом SQL, в котором я хотел бы искать контракты, которые были расторгнуты за определенный период.Это мои примерные данные, поэтому я хотел бы получить контракт1 на 201803 год и контракт2 на 201804 год - два контракта, которые заканчивались в течение первых месяцев;какой запрос мне следует использовать, если эти данные взяты из таблицы rcontracts?Спасибо

data

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

Вы просто хотите not exists?

select rc.*
from rcontracts rc
where not exists (select 1
                  from rcontracts rc2
                  where rc2.contract1 = rc2.contract2 and
                        rc2.yyyymm > 201803
                 );

Или агрегирование?

select rc.contract
from rcontracts rc
group by rc.contract
having max(rc.yyyymm) < 201804;
0 голосов
/ 27 декабря 2018

Можете ли вы попробовать этот запрос после замены имен столбцов.

SELECT t1.dt + 1, 
       t1.c 
FROM   rcontracts t1 
       LEFT JOIN rcontracts t2 
              ON t1.c = t2.c 
                 AND t1.dt + 1 = t2.dt 
WHERE  t2.c IS NULL 
       AND t1.dt < (SELECT Max(dt) 
                    FROM   rcontracts) 
...