SSRS 'where clause'
SSRS 'where clause'
我有一个 table,其中包含几家公司的销售信息。公司进行的每笔销售交易都存储在 table 中,并且还存储了一年中发生销售的那一周 (1-52)。这是我正在查询以生成 SSRS 报告的数据库 table 的一个小示例。
|---------------------|------------------|------------------|
| Company | Week |Sales_Transaction |
|---------------------|------------------|------------------|
| Alpha | 20 | 1.00 |
|---------------------|------------------|------------------|
| Alpha | 20 | 2.00 |
|---------------------|------------------|------------------|
| Beta | 20 | 9.00 |
|---------------------|------------------|------------------|
| Alpha | 21 | 5.00 |
|---------------------|------------------|------------------|
| Coolbeans | 21 | 5.50 |
|---------------------|------------------|------------------|
| Alpha | 22 | 2.00 |
|---------------------|------------------|------------------|
| Alpha | 22 | 2.00 |
|---------------------|------------------|------------------|
| Coolbeans | 22 | 3.00 |
|---------------------|------------------|------------------|
我有一个带有行组的矩阵,它在矩阵中为每个公司生成一行。该矩阵在一年中的每个星期都有 52 个额外的列。这是我想看到的矩阵和数据的压缩版本。
|--------------|---------------|----------------|----------------|
| Company | # Sales Wk 20 | # Sales Wk 21 | # Sales Wk 22 |
|--------------|---------------|----------------|----------------|
| Alpha | 2 | 1 | 2 |
|--------------|---------------|----------------|----------------|
| Beta | 1 | 0 | 0 |
|--------------|---------------|----------------|----------------|
| Coolbeans | 0 | 1 | 1 |
|--------------|---------------|----------------|----------------|
为了计算每家公司每周的销售交易数量,我对每一列都使用了这样的表达式:
=Count(IIF(Fields!Sales_Week_Number.Value = "20", Fields!Sales.Value, 0))
使用上面我放置在#Sales Wk 20 矩阵列中的示例表达式,问题是它不是只计算第 20 周发生的交易,而是计算公司所有周的交易。结果是在第 # Sales Wk 20 列中,Alpha 为 5,Beta 为 1,Coolbeans 为 2。
我需要怎么做才能让它只计算特定周的销售交易?
旁注:关于一年中每周的 52 列,我故意没有为此使用列组 b/c 我需要用另一个矩阵做一些其他 calculations/comparisons ' 在使用列组时表现良好。但是,我确实为公司使用了行组。
我认为您可能走错了路。由于您在 SSRS 中使用矩阵,因此最简单的方法是让 SSRS 为您处理分离而不是构建 WHERE。
尝试只添加 =CountRows()
作为公式的一部分,ssrs 会为您处理分组。我会在我的 phone.
正常联机时检查命令的格式
在矩阵的值列中使用此表达式 -
=IIf((Fields!Sales_Transaction.Value)>0,Count(Fields!Sales_Transaction.Value),0);
您的表达式应该使用 SUM 而不是计数
=SUM(IIF(Fields!Sales_Transaction.Value=0,0,1))
我有一个 table,其中包含几家公司的销售信息。公司进行的每笔销售交易都存储在 table 中,并且还存储了一年中发生销售的那一周 (1-52)。这是我正在查询以生成 SSRS 报告的数据库 table 的一个小示例。
|---------------------|------------------|------------------|
| Company | Week |Sales_Transaction |
|---------------------|------------------|------------------|
| Alpha | 20 | 1.00 |
|---------------------|------------------|------------------|
| Alpha | 20 | 2.00 |
|---------------------|------------------|------------------|
| Beta | 20 | 9.00 |
|---------------------|------------------|------------------|
| Alpha | 21 | 5.00 |
|---------------------|------------------|------------------|
| Coolbeans | 21 | 5.50 |
|---------------------|------------------|------------------|
| Alpha | 22 | 2.00 |
|---------------------|------------------|------------------|
| Alpha | 22 | 2.00 |
|---------------------|------------------|------------------|
| Coolbeans | 22 | 3.00 |
|---------------------|------------------|------------------|
我有一个带有行组的矩阵,它在矩阵中为每个公司生成一行。该矩阵在一年中的每个星期都有 52 个额外的列。这是我想看到的矩阵和数据的压缩版本。
|--------------|---------------|----------------|----------------|
| Company | # Sales Wk 20 | # Sales Wk 21 | # Sales Wk 22 |
|--------------|---------------|----------------|----------------|
| Alpha | 2 | 1 | 2 |
|--------------|---------------|----------------|----------------|
| Beta | 1 | 0 | 0 |
|--------------|---------------|----------------|----------------|
| Coolbeans | 0 | 1 | 1 |
|--------------|---------------|----------------|----------------|
为了计算每家公司每周的销售交易数量,我对每一列都使用了这样的表达式:
=Count(IIF(Fields!Sales_Week_Number.Value = "20", Fields!Sales.Value, 0))
使用上面我放置在#Sales Wk 20 矩阵列中的示例表达式,问题是它不是只计算第 20 周发生的交易,而是计算公司所有周的交易。结果是在第 # Sales Wk 20 列中,Alpha 为 5,Beta 为 1,Coolbeans 为 2。
我需要怎么做才能让它只计算特定周的销售交易?
旁注:关于一年中每周的 52 列,我故意没有为此使用列组 b/c 我需要用另一个矩阵做一些其他 calculations/comparisons ' 在使用列组时表现良好。但是,我确实为公司使用了行组。
我认为您可能走错了路。由于您在 SSRS 中使用矩阵,因此最简单的方法是让 SSRS 为您处理分离而不是构建 WHERE。
尝试只添加 =CountRows()
作为公式的一部分,ssrs 会为您处理分组。我会在我的 phone.
在矩阵的值列中使用此表达式 -
=IIf((Fields!Sales_Transaction.Value)>0,Count(Fields!Sales_Transaction.Value),0);
您的表达式应该使用 SUM 而不是计数
=SUM(IIF(Fields!Sales_Transaction.Value=0,0,1))