动态 select 日期
Dynamically select date
如果当前月份为 1,则目标是通过上一年,否则通过当年。我总是想要上个月的数据。我有动态月份逻辑工作,只是年份给我带来了问题。我正在尝试使用 IIF 语句进行此操作,但始终 returning 当年。
SELECT ( { IIF( Month(Now()) = '1', Strtomember(" [Posting Date].[Year].&[" + cstr(year(dateadd('yyyy',-1,now()))) + "] "),
Strtomember(" [Posting Date].[Year].&[" + cstr(year(now())) + "] "))
} ) ON COLUMNS
我已验证在删除 IIf 时每个 Strtomember
部分都可以独立正常工作。我能够查询当年,然后交换 Strtomember 和 return 当前年份 -1.
注意:出于测试目的,我有 IIF( Month(Now()) = '6'
,因为它是 post 时的当前月份。我应该 return 当前年份 -1,但 return 当前年份。
尝试将“1”更改为数字 1:
而不是Month(Now()) = '1'
使用 Month(Now()) = 1
以上更改在我的立方体上运行良好:
SELECT
{
IIF
(
Month(Now()) = 6
,StrToMember
("[Date].[Date - Calendar Month].[Calendar Year].&["
+
Cstr(Year(Dateadd('yyyy',-1,Now())))
+ "]"
)
,StrToMember
(
"[Date].[Date - Calendar Month].[Calendar Year].&[" + Cstr(Year(Now()))
+ "] "
)
)
} ON COLUMNS
如果当前月份为 1,则目标是通过上一年,否则通过当年。我总是想要上个月的数据。我有动态月份逻辑工作,只是年份给我带来了问题。我正在尝试使用 IIF 语句进行此操作,但始终 returning 当年。
SELECT ( { IIF( Month(Now()) = '1', Strtomember(" [Posting Date].[Year].&[" + cstr(year(dateadd('yyyy',-1,now()))) + "] "),
Strtomember(" [Posting Date].[Year].&[" + cstr(year(now())) + "] "))
} ) ON COLUMNS
我已验证在删除 IIf 时每个 Strtomember
部分都可以独立正常工作。我能够查询当年,然后交换 Strtomember 和 return 当前年份 -1.
注意:出于测试目的,我有 IIF( Month(Now()) = '6'
,因为它是 post 时的当前月份。我应该 return 当前年份 -1,但 return 当前年份。
尝试将“1”更改为数字 1:
而不是Month(Now()) = '1'
使用 Month(Now()) = 1
以上更改在我的立方体上运行良好:
SELECT
{
IIF
(
Month(Now()) = 6
,StrToMember
("[Date].[Date - Calendar Month].[Calendar Year].&["
+
Cstr(Year(Dateadd('yyyy',-1,Now())))
+ "]"
)
,StrToMember
(
"[Date].[Date - Calendar Month].[Calendar Year].&[" + Cstr(Year(Now()))
+ "] "
)
)
} ON COLUMNS