>>create cursor foo (f1 N(2),f2 c(2)) >>insert into foo values(2,"AA") >>insert into foo values(3,"BB") >>insert into foo values(2,"AA") >>insert into foo values(3,"BB") >>insert into foo values(2,"AA") >>insert into foo values(3,"BB") >>insert into foo values(2,"AA") >> >>Average f1 next 2 for f2 = "BB" to m.myvar >> >>?m.myvar && this returns 0 >>>>
>create cursor foo (f1 N(2),f2 c(2)) >insert into foo values(2,"AA") >insert into foo values(1,"BB") >insert into foo values(2,"AA") >insert into foo values(3,"BB") >insert into foo values(2,"AA") >insert into foo values(3,"BB") >insert into foo values(2,"AA") > >Average f1 for f2 == "BB" to m.myvar > >?m.myvar && this returns 2 > >Average f1 all WHILE _tally < 1 for f2 == "BB" to m.myvar > >?m.myvar && this returns 1 >
create cursor foo (f1 N(2),f2 c(2)) insert into foo values(2,"AA") insert into foo values(1,"BB") insert into foo values(2,"AA") insert into foo values(3,"BB") insert into foo values(2,"AA") insert into foo values(3,"BB") insert into foo values(2,"AA") * a FOR have a ALL implicit scope * f1 have not decimals, VFP format the myvar with f1's decimals ( 0 ) Average f1 for f2 == "BB" to m.myvar ?m.myvar && this returns 2 ?m.myvar*1.00 && this returns 2.33 * a WHILE have a REST implicit scope, then you have to declare ALL * a WHILE _tally < N stop the computation after N match records Average f1 all WHILE _tally < 1 for f2 == "BB" to m.myvar ?m.myvar*1.00 && this returns 1 Average f1 all WHILE _tally < 2 for f2 == "BB" to m.myvar ?m.myvar*1.00 && this returns 1