Я хотел бы встроить выражение NVL в AVG. Я пытаюсь вычесть start_date с date_returned, чтобы определить длину кредита в месяцах. Если date_recurned равно null, я хочу использовать сегодняшнюю дату (sysdate). Вот отрывок из моего заявления:Oracle 11G - NVL и AVG
avg(nvl(date_returned,sysdate)-start_date/30) "Loan Length in Months"
Это бросает ошибку ORA-00932, противоречивый тип данных, ожидаемое число получило DATE.
Любые предложения о том, как я могу исправить это утверждение?
Я думаю, вы опустили набор круглых скобок - дата начала, деленная на 30, не имеет смысла, но разница во времени (в днях, предположительно), деленная на 30, имеет смысл. Следовательно: 'AVG ((NVL (date_returned, sysdate) -start_date)/30)'. –
Думаю, вы должны преобразовать свою дату в число и после того, как сможете применить среднюю функцию. См. Http://stackoverflow.com/questions/10307353/averaging-dates-in-oracle-sql –