我想以某种方式在数据集中过滤我的查询,其中我从月初到昨天都有日期。第一部分很容易,我从报告参数中过了一个月,所以我从每个月的每一天都得到了值,但不知怎的,我必须将这个限制到昨天。我尝试将这个表达式放在where子句中,但由于我没有在行上设置日期,所以它根本不起作用:loc2
。
我知道我可以过滤行,但重要的是,我不希望在行上显示日期。
编辑:另外我可以使用主报告提供的参数,即昨天的日期。但是如何限制日期而不将其放在行上?这样的事情不起作用:FILTER([Date of shipment].[Date], [Date of shipment].[Date] < Format(Now(), "yyyyMMdd")
答案 0 :(得分:2)
你已经有类似的东西:
SELECT
{} ON 0
,
[Date].[Calendar].[Date].&[20050101]
:
StrToMember
('[Date].[Calendar].[Date].&[20050105]' //<<hard-coded to illustrate
,constrained
) ON 1
FROM [Adventure Works];
返回:
大多数多维数据集都有一个多级日期层次结构 - 因此您可以将代码更改为类似于明年您不需要更改硬编码位:
SELECT
{} ON 0
,
Descendants
(
Exists
(
[Date].[Calendar].[Calendar Year].MEMBERS
,StrToMember
(@ShipmentDate
,constrained
)
).Item(0)
,[Date].[Calendar].[Date]
).Item(0)
:
StrToMember
(@ShipmentDate
,constrained
) ON 1
FROM [Adventure Works];
如果@ShipmentDate
设置为'[Date].[Calendar].[Date].&[20060105]'
,那么我会收到以下信息:
答案 1 :(得分:0)
解决方案: 由于我通过参数日期的月份被限制在当月。这让我可以这样做:
[Shipment date].[Datw].&[20160101] : STRTOMEMBER(@ShipmentDate, constrained)
我这样做的方式很难看,但它有效(可能需要维护,明年将日期更改为20170101,等等)。