Choosing every Nth record to create a "random sample"

Is there a way to chose every Nth record in Crystal Reports?  I need to perform an audit where I need to generate a sample population from over 22,000 records.  I would like to create a formula  that only displays every 35th record in order to create a sample size of closer to 640.  I need a sample from all parts of the records, so the Nth percentile, or Nth smallest or largest wont work.  I have done similiar things in Excel, but I am asked to do this a lot and I would like to do it in Crystal with out exporting it.  Any help would be appreciated.  I am using Crystal Reports XI.
josslmpdAsked:
Who is Participating?
 
Ido MilletConnect With a Mentor Professor of MIS at Penn State Erie and Owner, Millet SoftwareCommented:
Here's an FAQ I wrote about this many years ago:

Displaying a Random Sample
faq767-3260

If you need to randomly select and display a given number of records, or a user-specified proportion of the records, here's a simple approach:

Step 1:  
Place the following formula (@Random_Number)
in the detail section:
---------------
Rnd()
---------------

Step 2:
Sort the records by @Random_Number  (ascending).

Step 3:
In the suppress attribute of the detail section enter the following expression:

3.1 If you need to display a given number of Records:
----------------------------------------
RecordNumber > {?Show_N_Records}
----------------------------------------
where {?Show_N_Records} is a parameter allowing the user to
specify the number of records to be shown.

3.2 If you need to display a given proportion of Records:
----------------------------------------
RecordNumber > ({?Show_X_Percent}/100) * Count({some_field})
----------------------------------------
where {?Show_X_Percent} is a parameter allowing the user to
specify a number between 0 and 100.

Cheers,
- Ido
0
 
vastoCommented:
Better do this on the database side. Then instead of 22000 records you will download just ~600. Your report will be 35 times faster. What is your database type?
0
 
josslmpdAuthor Commented:
It is a SQL server database.  I was hoping to do it in crystal since I am already running a selection fromula against the data to get it to the 22000 records.
0
 
contactnaeemCommented:
Best option to do this at database level but if your requirement is at report level then you can hide or show records based on evaluation formula. Have a look at below link

http://msdn.microsoft.com/en-us/library/ms225351(v=vs.80).aspx
0
 
peter57rConnect With a Mentor Commented:
To suppress everything except every 35th record you just put this into the Suppress conditional format button in the Section Expert.

Recordnumber mod 35 <>0
However, if the report contains any standard  summary totals they will still include  ALL of records meeting the record selection criteria  (they will not change to reflect the reduced number of records actually displayed).  If you want totals to be correct you will have to change the way they are calculated.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.