キューブに関する mdx レポートがあります。部門番号レポート パラメーターの使用可能な値として、自動生成されたデータセット (データセット 1、社内のすべての部門を含む) があり、クエリは次のようになります。
WITH MEMBER [Measures].[ParameterCaption] AS
[Dim Division].[Hierarchy].CURRENTMEMBER.MEMBER_CAPTION
MEMBER [Measures].[ParameterValue] AS
[Dim Division].[Hierarchy].CURRENTMEMBER.UNIQUENAME
MEMBER [Measures].[ParameterLevel] AS
[Dim Division].[Hierarchy].CURRENTMEMBER.LEVEL.ORDINAL
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue], [Measures].[ParameterLevel]}
ON COLUMNS ,
[Dim Division].[Hierarchy].ALLMEMBERS
ON ROWS
FROM ( SELECT ( STRTOMEMBER(@FromDimDateHierarchy, CONSTRAINED) : STRTOMEMBER(@ToDimDateHierarchy, CONSTRAINED) )
ON COLUMNS
FROM [ArveCubeBiceps]
)
ログインしたユーザーが表示できるはずの部門番号のみで構成される別のデータセット(dataset2)があります(手順によって提供されるデータ)。データセット 1 の使用可能な値をデータセット 2 の値でフィルター処理する必要があります。
- レポート クエリが MDX であり、データセット 2 が提供しないタプルを期待しているため、部門番号の使用可能な値としてデータセット 2 を使用することはできません。データセット 2 の値をタプルに連結しようとすると、Object() 型に「&」を使用できないというエラーが表示されます。
-レポートに非表示のパラメーターを作成すると、使用可能なデフォルト値はデータセット 2 のものであり、フィルター式をデータセット 1 クエリに適用すると、"DivisionID in @hidden_parameter" と表示されます - Division パラメーターに使用できる値が取得されません ( Iテーブルをチェックすると、すべてのデータがそこにあります)
このフィルター式を機能させるにはどうすればよいですか...誰か助けてください:)
@mmarie 2 番目のデータセットは、ストアド プロシージャによって作成されます。
USE [Biceps]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[ArveDivisionsByUserID]
@ldapuid nvarchar(30)
AS
BEGIN
declare @hier as hierarchyid
declare @managerID as int
select @managerID = em.employeeID from Dim_Employee2 em where em.ldapuid = @ldapuid
select @hier = dv.hier from Dim_Division dv where dv.managerID = @managerID and hier is not null order by hier desc
select divisionID from Dim_Division dv where hier.IsDescendantOf(@hier)=1 order by hier
END
@FrankPI - オフトピックには理由がわかりませんが、コードに ctrl+k を使用しましたが、それでも通常のテキストです:(