Как найти конкретное значение в последовательной дате - PullRequest
0 голосов
/ 04 февраля 2019

Мне нужна ваша помощь для небольшой проблемы.

Я использую MS ACCESS для работы с базой данных, и мне нужно разрешить запрос.Мой запрос спрашивает: найдите CUSTOMER_ID и TRANSC_ID, где 2 последовательных значения между 200 и 500 в одном и том же transc_id.

Я объясняю.

У меня есть эта таблица в этом формате:

CUSTOMER_ID    TRANSC_ID    VALUE   VALUE_DATE
51             10           15      29-12-1999
51             10           20      15-07-2000
51             10           35      18-08-2000
51             10           250     30-08-2000
51             10           13      10-09-2000
51             10           450     15-09-2000
51             11           5       15-09-2000
51             11           23      30-09-2000
51             11           490     10-10-2000
51             11           300     12-10-2000
51             11           85      30-10-2000
51             11           98      01-01-2000
53             10           65      15-10-2000
53             10           14      29-12-2000

И мне нужно просто

51             11           490     10-10-2000
51             11           300     12-10-2000

, потому что два значенияпоследовательный (и оба они> 250 и <500). </p>

Как я могу сделать запрос в MS ACCESS, чтобы получить этот результат?

Спасибо.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы можете получить «следующее» и «предыдущее» значения с помощью коррелированных подзапросов, а затем выполнить сравнение:

select t.*
from t
where t.value between 200 and 500 and
      ( (select top 1 t2.value
         from t as t2
         where t2.CUSTOMER_ID = t.CUSTOMER_ID and t2.TRANSC_ID = t.TRANSC_ID and
               t2.value_date > t.value_date
         order by t2.value_date
        ) between 200 and 500 or
        (select top 1 t2.value
         from t as t2
         where t2.CUSTOMER_ID = t.CUSTOMER_ID and t2.TRANSC_ID = t.TRANSC_ID and
               t2.value_date < t.value_date
         order by t2.value_date desc
        ) between 200 and 500
       );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...