cancel
Showing results for 
Search instead for 
Did you mean: 

Top 1 for multiple measure in single widget sac

thayumanavan
Participant
0 Kudos
333

I have 6 measure and 1 dimension[staff] in this i want to get top 1 of each measure in single widget. Please explain me how can we done in sac 

Regards,
Thayu.

View Entire Topic
JBARLOW
Active Contributor
0 Kudos

Can you provide more detail - or an example of the data and desired result?

e.g.  We data in the table on the left and we want to see the table on the right?
        i.e. the Top sales volume for each store regardless of product etc.

JBARLOW_0-1742291918713.png

 

thayumanavan
Participant
0 Kudos

Hi @JBARLOW, Thanks for reply Please find the sample

thayumanavan_0-1742302489916.png

Like this I want to do in sac live connection
In the left side table we have sales volume and sales quantity from that I want to get top 1 product of sales volume and top 1 product of sales quantity.


Regards,
Thayu.

thayumanavan
Participant
0 Kudos

Hi @JBARLOW  Finally find a solution in with some scripting but its taking around 40 sec to l

thayumanavan_1-1742658177120.png

In Table 1 :
Created a aggregation Calculation with the operation max for the measure which I want to get top 1.
In Table 2 :
I added the aggregation calculation on column and dimension staff on rows 
Sac Scripting to find top 1 dimension for different measure in OnInitialization is working but its taking around 30 sec to load

var a = Table_7.getDataSource().getResultSet();
var b = Table_14.getDataSource().getResultSet();
 
var m1 = "";
var m2 = "";
var m3="";
var m4="";
var m5="";
var m6="";
var m7="";
var d1="";
var d2="";
var d3="";
var d4="";
var d5="";
var d6="";
var d7="";
 
if (a.length >= 2) {
    var pickunit1 = a[0][Alias.MeasureDimension].formattedValue;
    var pickunit2 = a[1][Alias.MeasureDimension].formattedValue;
var pickunit3 = a[2][Alias.MeasureDimension].formattedValue;
var pickunit4 = a[3][Alias.MeasureDimension].formattedValue;
var pickunit5 = a[4][Alias.MeasureDimension].formattedValue;
var pickunit6 = a[5][Alias.MeasureDimension].formattedValue;
var pickunit7 = a[6][Alias.MeasureDimension].formattedValue;
var pickunit8 = a[7][Alias.MeasureDimension].formattedValue;
var pickunit9 = a[8][Alias.MeasureDimension].formattedValue;
var pickunit10 = a[9][Alias.MeasureDimension].formattedValue;
var pickunit11=a[10][Alias.MeasureDimension].formattedValue;
var pickunit12=a[11][Alias.MeasureDimension].formattedValue;
var pickunit13=a[12][Alias.MeasureDimension].formattedValue;
var pickunit14=a[13][Alias.MeasureDimension].formattedValue;
var pickunit15=a[14][Alias.MeasureDimension].formattedValue;
var pickunit16=a[15][Alias.MeasureDimension].formattedValue;
var pickunit17=a[16][Alias.MeasureDimension].formattedValue;
var pickunit18=a[17][Alias.MeasureDimension].formattedValue;
var pickunit19=a[18][Alias.MeasureDimension].formattedValue;
var pickunit20=a[19][Alias.MeasureDimension].formattedValue;
var pickunit21=a[20][Alias.MeasureDimension].formattedValue;
 
 
    for (var i = 0; i < b.length; i++) {
        var dimValue = b[i]["2CHOW5C4IK4P23Y43CLQ78N2J8Y"].description;
        var pickunit = b[i][Alias.MeasureDimension].formattedValue;
 
        if (pickunit === pickunit1) {
            m1 = dimValue;
        }
 
        if (pickunit === pickunit2) {
            m2 = dimValue;
        }
if(pickunit===pickunit3)
{
m3 = dimValue;
}
if(pickunit===pickunit4)
{
m4 = dimValue;
}
if(pickunit === pickunit5)
   {
    m5= dimValue;
   }
if(pickunit ===pickunit6)
{
m6 = dimValue;
}
if(pickunit===pickunit7)
{
m7 = dimValue;
}
if(pickunit===pickunit8)
{
d1 = dimValue;
}
if(pickunit===pickunit9)
{
d2 = dimValue;
}
if(pickunit===pickunit10)
{
d3 = dimValue;
}
if(pickunit===pickunit11)
{
d4 = dimValue;
}
if(pickunit===pickunit12)
{
d5 = dimValue;
}
if(pickunit===pickunit13)
{
d6 = dimValue;
}
if(pickunit===pickunit14)
{
d7 = dimValue;
}
 
    }
}
    var TEXT_VALUE22 = Text_37.getPlainText();
 
    Text_37.applyText(TEXT_VALUE22+""+m1+" "+pickunit1+" "+m2+" "+pickunit2+" "+m3+"  "+pickunit3+" "+m4+" "+pickunit4+" "+m5+" "+pickunit5+" "+m6+" "+pickunit6+" "+m7+" "+pickunit7);
var TEXT_Value23 = Text_38.getPlainText();
Text_38.applyText(TEXT_Value23+" "+d1+" "+pickunit8+" "+d2+" "+pickunit9+" "+d3+" "+pickunit10+" "+" "+d4+" "+pickunit11+" "+d5+""+pickunit12+" "+d6+" "+pickunit13+" "+d7+" "+pickunit14);
    var TEXT_Value24 = Text_39.getPlainText();
    Text_39.applyText(TEXT_Value24+" "+pickunit14+" "+pickunit15+" "+pickunit16+" "+pickunit17+" "+pickunit18+" "+pickunit19+" "+pickunit20+" "+pickunit21);
    console.log(d1);*/

Output:

thayumanavan_2-1742658814072.png

Please let me know in there any way to Improve the performance

Regards,
Thayu.

JBARLOW
Active Contributor
Impressive scripting thought process! I need to get my head round it, but initial thoughts are we should be able to improve performance