mondrian.rolap.agg.AggregationManager に関連するコードがあるようですが、簡単ではありません。
parseTree = this.olap4jConnection.getMondrianConnection().parseStatement(mdx);
DrillThrough plan1 = (DrillThrough)parseTree;
Query query = plan1.getQuery();
query.setResultStyle(ResultStyle.LIST);
this.setQuery(query);
CellSet cellSet = this.executeOlapQueryInternal(
query,
(MondrianOlap4jCellSetMetaData) null
);
List coords = Collections.nCopies(cellSet.getAxes().size(), Integer.valueOf(0));
MondrianOlap4jCell cell = (MondrianOlap4jCell) cellSet.getCell(coords);
ResultSet resultSet = cell.drillThroughInternal(
plan1.getMaxRowCount(),
plan1.getFirstRowOrdinal(),
plan1.getReturnList(),
true,
(Logger)null,
rowCountSlot
);
最後の行に従うと、
cell.drillThroughInternal(...)
あなたはここで終わるでしょう
文字列 sql = this.getDrillThroughSQL(fields, extendedContext);
しかし、mondrian が mdx に対して 1 つの SQL のみを生成するかどうかはよくわかりません。XMLA (ほとんどのツールがインターフェイスとして使用) を介して、完全なクエリが書き換えられていない単一の軸でドリルスルーを要求できると思います。
これが答えることを願っています。