需要根据我的字段的星期数创建列组 数据集,但我想显示最近4周,即使没有数据 周。数据源是Sharepoint,所以我无法(AFAIK)生成 通过SQL“虚拟”数据。另外,我也有两个行组,但是我会 不认为他们会受到影响。
所以我的数据只是Category,子类别和createDate,我创建了一个包含2个rowGroups(Category,SubCat)和表达式的表,以获取subCat类别的百分比,总计类别的百分比为:
CountRows("subCat") / CountRows("Category") AND CountRows("Category") / CountRows("MyDataSet")
我的想法是创建一个虚拟数据集,如下所示,我可以用它来创建所需的行/列
declare @runDt DATE = DATEAdd(DAY,-4,GETDATE()), @CurWkNo INT
SELECT @CurWkNo = DATEPART(wk, @runDt)
SELECT 'WK' + CAST(@CurWkNo AS varchar) AS WkLabel, @CurWkNo as wkNo
UNION
SELECT 'WK' + CAST(@CurWkNo - 1 AS VARCHAR) AS WkLabel, @CurWkNo -1 as wkNo
UNION
SELECT 'WK' + CAST(@CurWkNo - 2 AS VARCHAR) AS WkLabel, @CurWkNo -1 as wkNo
UNION
SELECT 'WK' + CAST(@CurWkNo - 3 AS VARCHAR) AS WkLabel, @CurWkNo -1 as wkNo
这会产生以下效果,这很好。
WkLabel wkNo
WK32 34
WK33 34
WK34 34
WK35 35
**但据我所知,我无法编写查询/创建数据集,因为我的dataSource是一个共享点列表。
目前,我正沿着没有真正的小组的方向走,但是 每周在数据集中创建一个字段,并使用 计数以下表达式
Sum(Iif("subCat") / CountRows("Category")
=SUM(IIf(DatePart(Fields!CreateDate.Value = ParameterContainingWeekNumber1,
1, 0), "subCat") / SUM(IIf(Fields!CreateDate.Value =
ParameterContainingWeekNumber1, 1, 0), "Category")
我已经创建了保存4周编号1-4的参数,因此可以在上面使用它们。
有人问这是否是正确的方法吗?或者,如果有一种更好的方法可以将这些字段作为一个整体生成?