У меня есть таблица, она будет использоваться для карты показателей поставщика, с одиннадцатью различными полями, которым можно присвоить значение 1-5.Допустимы нулевые значения.
Мне нужно написать запрос, который будет вычислять среднее значение полей, заполненных каждой строкой.Другими словами, я мог бы разделить ВСЕГО на 11 в одном ряду и разделить ВСЕГО на 5 в другом.
Я работаю с этим запросом:
select
cf$_vendor_no,
cf$_party,
cf$_environmental,
cf$_inspections,
cf$_invoice_process,
cf$_ncr,
cf$_on_time_delivery,
cf$_qms,
cf$_safety,
cf$_schedule,
cf$_scope_of_work,
cf$_turn_times,
sum(nvl(cf$_environmental,0)
+nvl(cf$_inspections,0)
+nvl(cf$_invoice_process,0)
+nvl(cf$_ncr,0)
+nvl(cf$_on_time_delivery,0)
+nvl(cf$_qms,0)
+nvl(cf$_safety,0)
+nvl(cf$_schedule,0)
+nvl(cf$_scope_of_work,0)
+nvl(cf$_turn_times,0))
/
sum(
case when cf$_environmental is not null then 1 else 0 end +
case when cf$_inspections is not null then 1 else 0 end +
case when cf$_invoice_process is not null then 1 else 0 end +
case when cf$_ncr is not null then 1 else 0 end +
case when cf$_on_time_delivery is not null then 1 else 0 end +
case when cf$_qms is not null then 1 else 0 end +
case when cf$_safety is not null then 1 else 0 end +
case when cf$_schedule is not null then 1 else 0 end +
case when cf$_scope_of_work is not null then 1 else 0 end +
case when cf$_turn_times is not null then 1 else 0 end) --as "average"
from supplier_scorecard_clv
group by cf$_vendor_no, cf$_party, cf$_environmental, cf$_inspections, cf$_invoice_process, cf$_ncr, cf$_on_time_delivery, cf$_qms, cf$_safety, cf$_schedule, cf$_scope_of_work, cf$_turn_times
И он почти работает.
Первая сумма в моем коде добавит значения в каждой строке, чтобы получить итоговое значение.Я получаю всего 25 для первой строки FARW002, 6 для второй и 12 для третьей.
Второй СУММ в моем коде также работает.Я получаю счет 6 для моей первой строки FARW002, 2 для моей второй и 3 для моей третьей.
Однако, когда я пытаюсь объединить их, как в приведенном выше фрагменте кода, я получаю "ORA-00923: Ключевое слово FROM не найдено там, где ожидается ", и я не знаю, почему.