Bir SSAS Cube ve Datazen (gösterge tablosu yaratıcısı) ile çalışıyorum.MDX Sorguların katları ve boş değerlere sahip parametreleri
AgeClassCode: 'AGE01', 'AGE02', 'AGE03' ...
StatutCode: Ben 3 parametrelerle (valueCode 'AZE' için) veri görünümünü ettik ' A', 'B', 'C', 'd', ...
NiveauCode: 'X', 'Y', 'W', ... Bu sorgu ile
zaman Her biri için birden çok değer veya sadece bir değer kullanırım, çalışır. Ancak, parametrenin değeri boş olduğunda, sorgu için bir parametre için tüm değerleri döndürmesini isterim.SELECT
NON EMPTY
{
[Measures].[Value], [Measures].[PreviousValueYear], [Measures].[PreviousValueReportMonth]
} ON COLUMNS,
NON EMPTY
{
NONEMPTY
(
[EntiteFederal].[ServiceCode].[ServiceCode].ALLMEMBERS *
[EntiteFederal].[EntiteCode].[EntiteCode].ALLMEMBERS *
[ReportMonth].[ReportMonth].[ReportMonth].ALLMEMBERS *
[T].[Year].[Year].ALLMEMBERS
)
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS
FROM
(
SELECT ({ [ValueType].[ValueCode].&[AZE] }) ON COLUMNS
FROM (
SELECT (STRTOSET('{{ @AgeClassCode }}')) ON COLUMNS
FROM (
SELECT (STRTOSET('{{ @NiveauCode }}')) ON COLUMNS
FROM
(
SELECT ((STRTOSET('{{ @StatutCode }}')) ON COLUMNS
FROM [MyCube]
)
)
)
)
WHERE
(
IIF(STRTOSET('{{ @StatutCode }}').Count = 1, STRTOSET('{{ @StatutCode }}'), [Statut].[StatutCode].currentmember),
IIF(STRTOSET('{{ @NiveauCode }}').Count = 1, STRTOSET('{{ @NiveauCode }}'), [Niveau].[NiveauCode].currentmember),
IIF(STRTOSET('{{ @AgeClassCode }}').Count = 1, STRTOSET('{{ @AgeClassCode }}'), [AgeClass].[AgeClassCode].currentmember),
[ValueType].[ValueCode].&[AZE]
)
:
An mdx expression was expected. An empty expression was specified.
Bu sorgu, bir veya daha fazla değerler için çalışır: Ben IsEmpty (@param), IsEmpty (STRTOSET (@param)) ... ama bu hata döndürür test ettik
Neyi değiştirmek zorundayım?
DÜZENLEME: Eğer geçerli mdx
temsil eden bir dize sağlamanız gerekmektedir strToMember
strToSet
kullanırken veya
) (
strtoset test etmek için iyi bir çözüm
isError()
Yazılımda değiştirmenin bir yolu yok, benim boyutuma göre seçim listesi navigator. Hiçbir değer seçilmediğinde hata görünür. Ayrıca AgeClassCode parametresini şu şekilde değiştirmeyi deniyorum: 'IIF (ISEMPTY ('{{@AgeClassCode}}'), [AgeClass]. [AgeClassCode] .Members, STRTOSET ('{{@AgeClassCode}} ')) ' Ve ben de buradaki tümceyi sildim, ama yine de aynı hata. – Huojian
Üzgünüm ama datazen arayüzü ile oynamam. Geçerli bir MDX dizgisini strToSet veya strToMember içine beslemeniz gerekir - böylece hiçbir şey istiyorsanız {}} öğesinde beslemeyi deneyin veya her üyeyi [AgeClassCode] gibi bir şey istiyorsanız [AgeClassCode]. [AgeClassCode] .members'. StrToSet, strToMember veya ISEMPTY içine NULL beslemesi başarısız olur. ISEMPTY argümanı olarak geçerli bir mdx ifadesine ihtiyaç duyar. – whytheq