Ronara boa tarde.
Não sei se é exatamente isso que você precisa, mas acredito que você fazendo alguns ajustes com sua necessidade (inclusive reveja o nome dos campos) você obterá de uma forma simples o resultado que precisa:
function createDataset(fields, constraints, sortFields) {
// Criação das colunas de retorno deste dataset
var datasetRetorno = DatasetBuilder.newDataset();
datasetRetorno.addColumn("Item");
datasetRetorno.addColumn("GrupoEstoque");
datasetRetorno.addColumn("Un");
// Definição das variáveis auxiliares
var item;
var grupoEstoque;
var un;
// Buscando o dataset 1
var dataset_1 = DatasetFactory.getDataset("dataset1", null, null, null);
// Buscando o dataset 2
var dataset_2 = DatasetFactory.getDataset("dataset2", null, null, null);
// A partir do dataset 1 busca todos relacionados no dataset 2
for (var i = 0; i < dataset_1.rowsCount; i++) {
item = dataset_1.getValue(i, "item");
grupoEstoque = dataset_1.getValue(i, "grupoEstoque");
un = 0;
// Totaliza o número de itens encontrados no dataset 2 que tem a mesma chave do dataset 1
for (var j = 0; j < dataset_2.rowsCount; j++) {
if (dataset_2.getValue(j, "item") == item) {
un = un + 1;
}
}
// Grava o dataset para retorno
datasetRetorno.addRow(new Array(item,
grupoEstoque,
un));
}
// Retorna o dataset
return datasetRetorno;
}