Oracle - Как я могу выбирать каждую пятницу в течение последних шести месяцев? - PullRequest
0 голосов
/ 22 января 2020

Я работаю над таблицей валют. Мне нужно получать каждую пятницу за последние шесть месяцев. Мой запрос выбирает каждый день между двумя датами. Здесь мой запрос

SELECT valid_from,
       currency_code,
       currency_rate
 FROM currency_rate
 WHERE valid_from > add_months(sysdate,-6) --Selects every day
 AND currency_code IN ('USD', 'EUR','CAD','GBP','JPY') 
 AND currency_type IN ('MBDS')
 ORDER BY currency_code,valid_from;

OUTPUT

1   23/07/2019  CAD 4.3561
2   24/07/2019  CAD 4.3368
3   25/07/2019  CAD 4.3636
4   26/07/2019  CAD 4.3539
5   27/07/2019  CAD 4.3059
6   28/07/2019  CAD 4.3059
7   29/07/2019  CAD 4.3059
8   30/07/2019  CAD 4.2849
9   31/07/2019  CAD 4.2429
10  01/08/2019  CAD 4.214
..  ../../....  CAD ......
..  ../../....  CAD ......
..  ../../....  CAD ......
173 21/01/2020  CAD 4.5281

OUTPUT (должно быть)

1   26/07/2019  CAD 4.3561
2   02/08/2019  CAD 4.3368
3   09/08/2019  CAD 4.3636
4   16/08/2019  CAD 4.3539
5   23/08/2019  CAD 4.3059
6   ..........  CAD ......
7   ..........  CAD ......
..  ..........  CAD ......
..  ..........  CAD ......
..  10/01/2020  CAD ......
..  17/01/2020  CAD ......

Спасибо за помощь.

1 Ответ

0 голосов
/ 22 января 2020

Не ясно, если вы ищете Oracle или MS SQL -Server. Если вам нужно Oracle, вы можете использовать

WHERE valid_from > add_months(sysdate,-6)
   AND TO_CHAR(valid_from, 'Dy', 'nls_date_language = american') = 'Fri'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...