Hi @RM12 ,
One way to fulfill this business requirement you can refer:
1. Suppose you have create a service to get the needed query result of this database table to a infotable parameter named tableResult which include 2 columns(heartRange and timestamp);
2. Create a new infotable through a service which will derived one number field for caculating
var tableResult=me.tableResult;
var params = {
types : "NUMBER",
columns : "number",
t : tableResult,
expressions : "1"
};
// DeriveFields
var result = Resources['InfoTableFunctions'].DeriveFields(params);
3. Create a datashape contains 3 fields - heartRange, timestamp, number
4. Create a service to caculate:
var tr = me.tableResult();
var st=Date.parse(StartTime); //inputparameter
var et=Date.parse(EndTime); //inputparameter
var params = {
infoTableName : "queryHeartRange",
dataShapeName : "queryHeartRangeDatashape"
};
var queryHeartRange = Resources["InfoTableFunctions"].CreateInfoTableFromDataShape(params);
for (var i=0;i<tr.rows.length;i++){
var ct=Date.parse(tr.rows[i].timestamp);
if (st<=ct && ct<et){
queryHeartRange.AddRow(tr.rows[i]);
}
}
var params1 = {
columns : "number",
aggregates : "SUM",
t : queryHeartRange};
var totalNumber = Resources['InfoTableFunctions'].Aggregate(params1);
var result = totalNumber.SUM_number;
You can also add your query logic in above js code.
Best Regards,
/Yoyo