SSRS 中的图表仅显示几周的数据
Graph in SSRS only shows a couple of week's data
我正在 SSRS 中制作图表,突出显示特定周以及从第 52 周到该日期的每一周的销售额。
为此,我在 SSRS 中创建了以下数据集:
WITH SET LAST52WEEKS AS
{
STRTOMEMBER("[Dim Date].[Week].&[2017]&[1]&[1]&[4]").Lag(52):
STRTOMEMBER("[Dim Date].[Week].&[2017]&[1]&[1]&[4]")
}
Select {[Measures].[Quantity]} ON 0,
{Last52Weeks} ON 1
FROM (
Select {
[Dim Store2].[Store Key].&[1024]
} on columns
from [DSV_FactStoreSales 1]
)
按预期工作,并有从 13
到 4
周的输出,每周有一个每周销售额 Quantity>400
(除了有 Quantity (null) 的一周。
但是,当我将此数据添加为 SSRS 图表中的 Y 轴以及 Weeks
属性作为 X 轴时,仅返回四行。返回的行是周数
1,19,3,40
图表中的所有其他值都是空白的。有谁知道为什么会发生这种情况?
此致,
森德泽
EDIT updated x-axis from using Interval value = 1
当我更改 Horizontal Axis Properties
下的 Interval value
时,我现在得到以下 x 轴值:
1, 13, 14,[...],19, 2, 20, 21, 22, 23, [...], 29, 3, 30, 31, 32,[...],39, 4, 41, 42,[...], 53
我加粗的结果看起来很奇怪。我猜这些值是 quarters
?但是,我使用 Weeks
作为我的分组变量。
EDIT
跟随 Mike Honey 我认为:
WITH SET LAST52WEEKS AS
{STRTOMEMBER("[Dim Date].[Date].&[1]&[2017-01-29]").Parent.Lag(52)
:
STRTOMEMBER("[Dim Date].[Date].&[1]&[2017-01-29]").parent}
Select {[Measures].[Quantity]} ON 0,
{Last52Weeks} ON 1
FROM (
Select {
[Dim Store2].[Store Key].&[1024]
} on columns
from [DSV_FactStoreSales 1])
应该可以工作,但它只是返回数量为 (null)。为什么这不等同于我编写的其他查询,而是基于日期而不是周?
EDIT
我还注意到,我正在创建的图表在最右边有第 52 周,而它应该在最右边有第 4 周。
EDIT
EDIT
将查询编辑为:
WITH SET LAST52WEEKS AS
{STRTOMEMBER("[Dim Date].[Hierarchy].&[2017 W4]").Lag(52):STRTOMEMBER("[Dim Date].[Hierarchy].&[2017 W4]")}
Select {[Measures].[Quantity]} ON 0,
{(Last52Weeks,[Dim Store2].[Store Name].Allmembers)} ON 1
from [DSV_FactStoreSales 1]
其中 Hierarchy 是具有值 2010 W1
,...., 2018 W52
的属性层次结构。
但这会产生一个输出:
2016 W40 Store1 300
2016 W40 Store2 400
...
2017 W39 Store1 400
我期望的输出是:
2016 W4 Store1 300
2016 W4 Store2 400
...
2017 W4 Store1 400
有什么想法吗?它只是一个具有一个属性 Week Name
的层次结构(我已经尝试使用 [Dim Date].[Hierarchy].[Week Name].&[2017 W4]
和 [Dim date].[Hierarchy].&[2017 W4]
进行查询,两者都具有相同的输出。
EDIT (very close now!)
右键单击 x 轴并选择 "Horizontal Axis Properties"。在轴选项下,将间隔值从自动更改为 1。
我发现您当前的图表存在两个问题。一是您的周数被视为文本,这就是为什么排序具有 19, 2, 20
之类的序列的原因。另一个是它不区分一年结束和另一年开始的周数。
我不熟悉mdx。我希望您能够制作一个简单的数据集,它纯粹是一个带日期的销售列表。对于我的解决方案,我使用了一个 Oracle 查询,如:
SELECT date SALEDATE, ID FROM sales
WHERE date BETWEEN '28-MAR-2016' AND '28-JAN-2017'
对于新图表,使用 [Count(ID)]
作为值。然后它需要两个类别组,第一个用于年份,然后一个用于周数。您可以使用表达式从日期字段中获取这些。对于第一个类别组,将 Group on:
和 Label
设置为
=DatePart(DateInterval.Year, Fields!SALEDATE.Value)
然后,将 Group on:
和 Label
设置为
=DatePart(DateInterval.WeekOfYear, Fields!SALEDATE.Value)
然后要隐藏销售额低于 400 的列,请右键单击第二个类别组(第一个)并添加过滤器:[Count(ID)] (integer) > 400
。
即使您的数据集与我使用的原始数据方法不同,希望这会引导您朝着正确的方向前进。
我正在 SSRS 中制作图表,突出显示特定周以及从第 52 周到该日期的每一周的销售额。
为此,我在 SSRS 中创建了以下数据集:
WITH SET LAST52WEEKS AS
{
STRTOMEMBER("[Dim Date].[Week].&[2017]&[1]&[1]&[4]").Lag(52):
STRTOMEMBER("[Dim Date].[Week].&[2017]&[1]&[1]&[4]")
}
Select {[Measures].[Quantity]} ON 0,
{Last52Weeks} ON 1
FROM (
Select {
[Dim Store2].[Store Key].&[1024]
} on columns
from [DSV_FactStoreSales 1]
)
按预期工作,并有从 13
到 4
周的输出,每周有一个每周销售额 Quantity>400
(除了有 Quantity (null) 的一周。
但是,当我将此数据添加为 SSRS 图表中的 Y 轴以及 Weeks
属性作为 X 轴时,仅返回四行。返回的行是周数
1,19,3,40
图表中的所有其他值都是空白的。有谁知道为什么会发生这种情况?
此致,
森德泽
EDIT updated x-axis from using Interval value = 1
当我更改 Horizontal Axis Properties
下的 Interval value
时,我现在得到以下 x 轴值:
1, 13, 14,[...],19, 2, 20, 21, 22, 23, [...], 29, 3, 30, 31, 32,[...],39, 4, 41, 42,[...], 53
我加粗的结果看起来很奇怪。我猜这些值是 quarters
?但是,我使用 Weeks
作为我的分组变量。
EDIT
跟随 Mike Honey 我认为:
WITH SET LAST52WEEKS AS
{STRTOMEMBER("[Dim Date].[Date].&[1]&[2017-01-29]").Parent.Lag(52)
:
STRTOMEMBER("[Dim Date].[Date].&[1]&[2017-01-29]").parent}
Select {[Measures].[Quantity]} ON 0,
{Last52Weeks} ON 1
FROM (
Select {
[Dim Store2].[Store Key].&[1024]
} on columns
from [DSV_FactStoreSales 1])
应该可以工作,但它只是返回数量为 (null)。为什么这不等同于我编写的其他查询,而是基于日期而不是周?
EDIT
我还注意到,我正在创建的图表在最右边有第 52 周,而它应该在最右边有第 4 周。
EDIT
EDIT
将查询编辑为:
WITH SET LAST52WEEKS AS
{STRTOMEMBER("[Dim Date].[Hierarchy].&[2017 W4]").Lag(52):STRTOMEMBER("[Dim Date].[Hierarchy].&[2017 W4]")}
Select {[Measures].[Quantity]} ON 0,
{(Last52Weeks,[Dim Store2].[Store Name].Allmembers)} ON 1
from [DSV_FactStoreSales 1]
其中 Hierarchy 是具有值 2010 W1
,...., 2018 W52
的属性层次结构。
但这会产生一个输出:
2016 W40 Store1 300
2016 W40 Store2 400
...
2017 W39 Store1 400
我期望的输出是:
2016 W4 Store1 300
2016 W4 Store2 400
...
2017 W4 Store1 400
有什么想法吗?它只是一个具有一个属性 Week Name
的层次结构(我已经尝试使用 [Dim Date].[Hierarchy].[Week Name].&[2017 W4]
和 [Dim date].[Hierarchy].&[2017 W4]
进行查询,两者都具有相同的输出。
EDIT (very close now!)
右键单击 x 轴并选择 "Horizontal Axis Properties"。在轴选项下,将间隔值从自动更改为 1。
我发现您当前的图表存在两个问题。一是您的周数被视为文本,这就是为什么排序具有 19, 2, 20
之类的序列的原因。另一个是它不区分一年结束和另一年开始的周数。
我不熟悉mdx。我希望您能够制作一个简单的数据集,它纯粹是一个带日期的销售列表。对于我的解决方案,我使用了一个 Oracle 查询,如:
SELECT date SALEDATE, ID FROM sales
WHERE date BETWEEN '28-MAR-2016' AND '28-JAN-2017'
对于新图表,使用 [Count(ID)]
作为值。然后它需要两个类别组,第一个用于年份,然后一个用于周数。您可以使用表达式从日期字段中获取这些。对于第一个类别组,将 Group on:
和 Label
设置为
=DatePart(DateInterval.Year, Fields!SALEDATE.Value)
然后,将 Group on:
和 Label
设置为
=DatePart(DateInterval.WeekOfYear, Fields!SALEDATE.Value)
然后要隐藏销售额低于 400 的列,请右键单击第二个类别组(第一个)并添加过滤器:[Count(ID)] (integer) > 400
。
即使您的数据集与我使用的原始数据方法不同,希望这会引导您朝着正确的方向前进。