Извлечение данных, начиная с 12 месяцев назад .... и далее - PullRequest
0 голосов
/ 25 сентября 2019

Соединение двух таблиц A и B по account_id.Попытка извлечь данные из столбца баланса из таблицы B. Дело в том, что мне нужно получить первую сумму баланса, которая будет найдена, начиная с -12 с сегодняшней даты (пример: «01SEP2019»).Если не найдено в -12, посмотрите в -11, затем -10 .... и так далее.Дело в том, что для некоторых account_id баланс можно найти на уровне -12, а на других на уровне -6 и так далее.Спасибо

Пытался использовать add_months function = ('01SEP2019',-12), но получил

"недопустимое количество аргументов"

select account_id, balance
from table_A a
left join table_B b
    on (a.acc = b.acc)
where a.month_end_date = '01SEP2019'
  and b.month_end_date = add_months('01SEP2019'-12)

1 Ответ

0 голосов
/ 25 сентября 2019

Вы даете строки даты как '01SEP2019' и так далее.Это не пригодный для использования формат строки даты.Попробуйте '2019-09-01' вместо этого.И используйте DATE (или DATETIME или TIMESTAMP) типы данных для хранения дат, а не текстовые строки.

Если вы хотите, чтобы дата была за двенадцать месяцев до указанной даты, попробуйте это арифметическое выражение даты.

... AND col = '2019-09-01' - INTERVAL 12 MONTH

Как вы обнаружили, ADD_MONTHS() - это вещь Oracle, а не MySQL .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...