SOコミュニティ、
BI アプリケーションに問題があります。
Schema Workbench で構築したスキーマがあり、組み込みのクエリ テスターを使用すると、完全かつ正確に機能します。ただし、Java アプリケーションから呼び出すと、まったく同じ MDX クエリに対して同じスキーマが異なるセル値を返します (既に PreparedOlapStatement.execute() メソッドと OlapStatement.executeOlapQuery(String) メソッドの両方を試しました)。
ステートメントが実行されるとすぐに値が間違っているので、アプリケーションの問題ではないと思います。ワークベンチで使用したものと同じになるようにクエリをハードコーディングしてみましたが、それでも間違った値が返されます。
クエリは次のとおりです。一部の名前は、(かなりばかげた) 会社のポリシーのために変更されています。
WITH
SET [SET1] as Filter(Filter1)
SET [T] as FILTER(FilterTime)
MEMBER Measures.[V] as SUM([T].item(0):Time.currentmember, Measures.[Measure1])
SET [Medida] as ({Measures.[V]})
SET [CJ] as ([ClassFin]*[Medida])
SELECT
[CJ] on 1,
[T] on 0
FROM [Cube]
フィルターが意図したとおりに機能すると仮定すると (Schema Workbench から取得した結果が正しく、基礎となるデータベースで再確認されるため)、何がうまくいかないのでしょうか?
編集:
生成される両方の SQL クエリは同じです。
SELECT "td"."ano" AS "c0",
"td"."mes" AS "c1",
"fechamento_classificacao_financeira"."id_pai" AS "c2",
sum((CASE
WHEN sinal = 0 THEN vr
ELSE 0
END)) AS "m0"
FROM "util"."tempo_datas" AS "td",
(SELECT fc.classificacaofinanceira AS classfin,
fc.bempatrimonial AS bempat,
tt.id_pessoa AS participante,
tt.sinal AS sinal,
fc.centrocusto AS cc,
fc.data AS DATA,
fc.projeto AS pj,
fc.valorrealizado_recebimento vr,
fc.valorrealizado_pagamento vp
FROM financas.dadosanaliticosfluxocaixa fc
LEFT JOIN financas.titulos tt ON tt.id = fc.titulo) AS "fc",
"util"."fechamento_classificacao_financeira" AS "fechamento_classificacao_financeira"
WHERE "fc"."data" = "td"."data_completa"
AND "td"."ano" = '2017'
AND "fc"."classfin" = "fechamento_classificacao_financeira"."id_filho"
AND "fechamento_classificacao_financeira"."id_pai" IN ('8875114b-5dd3-4e5c-915f-55f91a825a74',
'cbae1877-9913-44b2-8533-f33a9a28ea31',
'e22fb59b-a6be-4d6b-a2de-8bb66b2b1b2a')
GROUP BY "td"."ano",
"td"."mes",
"fechamento_classificacao_financeira"."id_pai"
SO では、クエリのスクリーンショットを並べてアップロードすることはできませんが、差分チェッカーを使用してそれらが同じであることを確認しました。