Я застрял в написании правила для конкретной постановки задачи. У меня есть файл excel с идентификатором столбца, специальностью, зарплатой. Специальность может принимать такие значения, как «онкология», «урология» и т. д. Мне нужно рассчитать общую зарплату, соответствующую каждой специальности. Есть два способа сделать это.
Первый:
rule "Total salary of Oncology"
no-loop
lock-on-active
salience 100
when
$m : Masterclass( $id : phyid , $p : p,spec=="Oncology")
not Masterclass( spec=="Oncology", phyid < $id)
$total : Number() from accumulate ( Masterclass( $salary : salary ,spec=="Oncology") ,
init( double total =0;),
action(total+=$salary;),
result( new Double (total)))
then
System.out.println($m.getSpec());
System.out.println("Total target pay is : " + $total + " of specialty : "+ $m.getSpec());
retract($m);
end
И так же по другим специальностям. Это правило работает нормально.
Второе: Напишите только одно правило, которое считывает значение специальности, а затем суммирует соответствующие ей зарплаты. Я пытался реализовать это, но не удалось. Любая помощь будет оценена.