Сравнение даты выполнения

Я пытаюсь сделать запрос в процессе. Я должен выбрать все записи старше ровно одного года, поэтому текущая дата минус 1 год. Я пробовал несколько возможностей, но каждый раз становился ошибкой. Запрос принадлежит объединению и должен принимать все записи предыдущего года до текущей даты минус один год:

left outer join data.pub."vc-669" as det2  
  on deb.cddeb = det2.cddeb 
 and det2.jaar = year(curdate()) - 1 
 and det2."sys-date" < date(month(curdate()), day(curdate()), year(curdate()) - 1) 

person W. Geraats    schedule 10.04.2017    source источник
comment
Покажите нам схему БД, образцы данных и ожидаемый результат. Пожалуйста, прочтите Как задать вопрос. А вот отличное место для СТАРТ чтобы узнать, как повысить качество вопросов и получить более качественные ответы.   -  person Juan Carlos Oropeza    schedule 10.04.2017
comment
Очень полезно показать фактическое сообщение об ошибке, которое вы получаете. Сообщения об ошибках на удивление часто оказываются очень полезными диагностическими инструментами.   -  person Tom Bascom    schedule 10.04.2017


Ответы (1)


Это должно быть просто:

and det2."sys-date" < add-interval( curdate(), - 1, 'year' )

(Поскольку это уже относится к году, нет необходимости смотреть и на det2.jaar.)

https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/dvref/add-interval-function.html

person Thorsten Kettner    schedule 10.04.2017
comment
Я по-прежнему получаю сообщение об ошибке: ERROR [HY000] [DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Синтаксическая ошибка в операторе SQL в или около ADD-INTERVAL(curdate(), -1, 'year' ) (10713 ) - person W. Geraats; 14.04.2017
comment
Соответствующая часть запроса: левое внешнее соединение data.pub.aa-270 как deb на deb.cdorg = org.cdorg левое внешнее соединение data.pub.vc-669 как det2 на deb.cddeb = det2.cddeb и det2. jaar = year(curdate()) - 1 и det2.sys-date ‹ ADD-INTERVAL(curdate(), -1, 'year' ) и det2.periode ‹› 0 - person W. Geraats; 14.04.2017
comment
Мне нужно посмотреть на det2.jaar, потому что я хочу получить сводку данных с первого дня прошлого года по текущий день минус один год, чтобы сделать сравнение. - person W. Geraats; 14.04.2017