Hi Albert,
try this:
RULES 'Limit of [ 10 ] entries reached!' FOR Top10_Performances SUCCEEDS
WHERE+
Inst_Type NOT IN (SELE Inst_Type FROM Top10_Performances T1 WHERE+
T1.Inst_Type = Top10_Performances.Inst_Type) OR Inst_Type IN (SELE
T2.Inst_Type+
FROM Top10_Performances T2 GROUP BY T2.Inst_Type HAVI COUNT(*) < 10)
Polychronis T. Kontos
Athens, Greece
> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]On Behalf Of
> Alastair Burr
> Sent: Monday, January 27, 2003 8:31 PM
> To: RBASE-L Mailing List
> Subject: [RBASE-L] - Re: Rule problem
>
>
> Thanks Atrix, I thought something along those lines at first but
> if it's not
> in the view then there's no count to compare to. It's only the first
> addition of a new item as by the time of the second one the first
> one is in
> the view.
>
> I'm beginning to think that I may need a work-around - perhaps
> have a count
> column in the original table and somehow set each new one to the
> current max
> plus one until 10 is reached.
>
> Regards,
> Alastair.
>
>
> ----- Original Message -----
> From: "Atrix Wolfe" <[EMAIL PROTECTED]>
> To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> Sent: Monday, January 27, 2003 5:37 PM
> Subject: [RBASE-L] - Re: Rule problem
>
>
> > well, pardon me if im wrong because i havent worked much with views and
> > never worked with rules, but it looks to me that the rule is
> whats letting
> >
> > 10 through.
> >
> > the rule basicly says in english:
> >
> > let in records where InstCount <= 10
> > OR
> > let in records that are not part of the view
> >
> > it seems to me the rule should be:
> >
> > let in records where IsntCount<=10
> > OR
> > (let in records that are not part of the view and these records have
> > InstCount<=10)
> >
> > so i think that would look something like this:
> >
> > (Top10_Performances.Inst_Type IN ( SELECT InstType FROM
> > Top10_Rule_View WHERE InstCount <= 10 ) OR (NOT
> > Top10_Performances.Inst_Type IN ( SELECT InstType FROM
> > Top10_Rule_View ) AND Top10_Performances.InstCount<=10))
> >
> >
> >
> > ----- Original Message -----
> > From: "Alastair Burr" <[EMAIL PROTECTED]>
> > To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> > Sent: Monday, January 27, 2003 4:19 AM
> > Subject: [RBASE-L] - Re: Rule problem
> >
> >
> > > I think I've found out what's wrong while playing with the
> view as Sami
> > > suggested:
> > >
> > > While a value exists in the view then it works.
> > > When a value doesn't exist then it also works - but not as I want - or
> > > expected.
> > >
> > > Obviously, once the penny/cent drops, any new value will not be in the
> > > view so the rule prevents the addition of the row.
> > >
> > > So I changed the view to:
> > >
> > > create view Top10_Rule_View (InstType, InstCount) as SELECT
> > > Inst_Type, COUNT(Inst_Type) FROM Top10_Performances
> > > GROUP BY Inst_Type
> > >
> > > and the rule to:
> > >
> > > (Top10_Performances.Inst_Type IN ( SELECT InstType FROM
> > > Top10_Rule_View WHERE InstCount <= 10 ) OR NOT
> > > Top10_Performances.Inst_Type IN ( SELECT InstType FROM
> > > Top10_Rule_View ))
> > >
> > > I had hoped that this would prevent entries where the count was more
> > > than 10 and let in any new Inst_Type(s).
> > > It lets in new ones but also more than 10 the same.
> > >
> > > Anybody got any ideas why?
> > >
> > > Regards,
> > > Alastair.
> > >
> > >
> > > ----- Original Message -----
> > > From: "Alastair Burr" <[EMAIL PROTECTED]>
> > > To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> > > Sent: Sunday, January 26, 2003 5:48 PM
> > > Subject: [RBASE-L] - Re: Rule problem
> > >
> > >
> > > > Thanks, Sami,
> > > >
> > > > I was trying to avoid a view because _as far as I can tell_
> the select
> > > works
> > > > at the R:>.
> > > >
> > > > I'll give it a while and see if anybody else has any
> comments then try
> a
> > > > view.
> > > >
> > > > Regards,
> > > > Alastair.
> > > >
> > > >
> > > > ----- Original Message -----
> > > > From: "Sami Aaron" <[EMAIL PROTECTED]>
> > > > To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> > > > Sent: Sunday, January 26, 2003 4:41 PM
> > > > Subject: [RBASE-L] - Re: Rule problem
> > > >
> > > >
> > > > > Alastair -
> > > > >
> > > > > It seems like this should work but ...Have you tried creating the
> > GROUP
> > > BY
> > > > > portion as a view and referencing the view in your rule?
> > > > >
> > > > > Sami
> > > > >
> > > > > -----------------------------------------------------------
> > > > > Sami Aaron
> > > > > Software Management Specialists
> > > > > 19312 W 63rd Terr
> > > > > Shawnee KS 66218
> > > > > 913-915-1971
> > > > > [EMAIL PROTECTED]
> > > > > http://www.softwaremgmt.com
> > > > >
> > > > > ----- Original Message -----
> > > > > From: "Alastair Burr" <[EMAIL PROTECTED]>
> > > > > To: "RBASE-L Mailing List" <[EMAIL PROTECTED]>
> > > > > Sent: Sunday, January 26, 2003 6:14 AM
> > > > > Subject: [RBASE-L] - Rule problem
> > > > >
> > > > >
> > > > > > Hi all,
> > > > > >
> > > > > > Can anybody tell me why this rule doesn't work?
> > > > > >
> > > > > > MESSAGE : Limit of [ 10 ] entries reached!
> > > > > > TABLE : Top10_Performances Row is added or changed if
> condition
> > > > > SUCCEEDS
> > > > > > WHERE : Top10_Performances.Inst_Type IN ( SELECT Inst_Type FROM
> > > > > > Top10_Performances GROUP BY Inst_Type HAVING
> COUNT(Inst_Type) <=
> > 10 )
> > > > > >
> > > > > > I'm trying to limit the number of rows for any
> individual value in
> > > > > Inst_Type
> > > > > > to a maximum of 10 (10 guitars, 10 drums, etc.). At the moment
> > > whichever
> > > > I
> > > > > > way I try this (succeeds or fails) I cannot change anything even
> > > though
> > > > > > there are only 5 rows in the table.
> > > > > >
> > > > > > Thanks in advance,
> > > > > > Regards,
> > > > > > Alastair.
> > > > > >
> > > > > > ----------------------------------
> > > > > > A D B Burr,
> > > > > > St. Albans, UK.
> > > > > > ----------------------------------
> > > > > > [EMAIL PROTECTED]
> > > > > > ----------------------------------
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>