EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics

KB206160: Randbetween() function gives incorrect value by Analytical Engine against Microsoft Access warehouse in MicroStrategy 9.4.1


Community Admin

• Strategy


Randbetween() function gives incorrect value by Analytical Engine against Microsoft Access warehouse in MicroStrategy 9.4.1

SYMPTOM:
The user has defined Metric_B as [Metric_A*  Randbetween(bottom, top)]. However, the result of Metric_B has a very large variance from Metric_A. Randbetween(bottom, top) returns incorrect value which is out of range (bottom, top).
Both normal metric and derived metric will get incorrect result from Randbetween function. But this issue occurs only when Microsoft Access is used as the warehouse database. 
 
STEPS TO REPRODUCE:
The following steps are performed in Tutorial project.

      • Create a compound metric with expression:
        [Revenue]*Randbetween(0.97, 1.03) {~}
ka04W000001MKkrQAG_0EM440000002CEj.jpeg
      • Add the compound metric together with Revenue, Year to a report.Then execute report. It can be seen that the compound metric gives incorrect value.Randbetween(0.97, 1.03) returns incorrect value which is out of range (0.97, 1.03).
         
ka04W000001MKkrQAG_0EM440000002CEl.jpeg
      • Create a standalone metric which is not compound with expression below:Randbetween(0.97, 1.03)
ka04W000001MKkrQAG_0EM440000002CEh.jpeg
      • Add the new metric to the report which was created in step 2. Notice the standalone metric gives value 0.89 which is out of range (0.97, 1.03).
         
ka04W000001MKkrQAG_0EM440000002CEm.jpeg

 
 
CAUSE:
This is a known issue for Analytical Engine in Strategy 9.4.1
 
ACTION:
Currently this issue is being reviewed by Strategy for a potential code fix on an upcoming Strategy release.
 
TO LEARN MORE:
For relational database, such as Microsoft SQL Server, the Randbetween function would be converted to specific database function and computed at the database side. For example, if the user's report is queried against Microsoft SQL Server, Randbetween function would be converted to RAND() function. But for Microsoft Access warehouse, Randbetween is handled by Strategy Analytical Engine.


Comment

0 comments

Details

Knowledge Article

Published:

April 11, 2017

Last Updated:

April 11, 2017