With an additional class PurchaseSum
List<Customer> customers;
... purchaseDate;
... custNo;
... sum;
}
you can write these rules;
rule "insert PurchaseSum"
when
Customer( $pd : purchaseDate, $cn : custNo )
not( PurchaseSum( purchaseDate == $pd, custNo == $cn ) )
then
insert( new PurchaseSum( $cn, $pd );
end
rule "accumulate amounts"
when
$cu : Customer( $pd : purchaseDate, $cn : custNo, $am : amount )
$ps : PurchaseSum( purchaseDate == $pd, custNo == $cn, customers not
contains $cu )
then
modify( $ps ){
setSum( $ps.getSum() + amount ),
setCustomers( $ps.getCustomers().add( $cu )
}
end
rule "show amounts > X"
salience -100
when
$ps : PurchaseSum( amount > X )
thne
System.out.println( $ps... );
retract( $ps );
end
rule "clean up"
salience -101
when
$ps : PurchaseSum()
thne
retract( $ps );
end
On 10 August 2010 20:03, vijrams <mailrvijay(a)gmail.com> wrote:
Hi
i have an object customer (purchaseDate, CustNo, Amount)
i need to find the customers who purchased more than X amount in each date)
ie group by customer then group by date and then sum of amount
how do you write a rule for this
thanks
Vijay
--
View this message in context:
http://drools-java-rules-engine.46999.n3.nabble.com/Disting-and-group-by-...
Sent from the Drools - User mailing list archive at
Nabble.com.
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users