【问题标题】:Is there a way I can use a calculated expression as a parameter in SSRS?有没有办法可以使用计算表达式作为 SSRS 中的参数?
【发布时间】:2018-08-21 20:03:32
【问题描述】:

我无法像使用两个未计算的参数那样在数据集中写入参数。如果我以错误的方式解决这个问题,非常感谢任何帮助让我走上正轨。

数据集查询

SELECT 
    Inmast.fpartno
    , inmast.fdescript
    , inmast.fonhand
    , inmast.fnonnetqty
    , inmast.fcstscode
    , inmast.fsource
    , inmast.fprodcl
    , inprod.fpc_desc
    , inmast.fsafety
    , inmast.fbook
    , inmast.fonorder
    , inmast.fproqty
    , inmast.freordqty  
From inmast  
    inner join inprod 
        on inmast.fac + inmast.fprodcl = inprod.fac + inprod.fpc_number  
Where inmast.fcstscode = @Code and inmast.fsource = @Source 

计算表达式

(inmast.fonhand 
    + inmast.fonorder 
    + inmast.fproqty 
    - inmast.fbook 
    - inmast.fnonnetqty 
    - inmast.fsafety < 0
) = @CalculatedExpression

【问题讨论】:

  • 您能否将该数据集查询更改为存储过程调用?顺便说一句,您的计算表达式中似乎有错字。
  • 我没试过。对 SSRS 来说还很新,但会尝试一下。
  • 计算表达式是Where子句的一部分吗?
  • 是的,它应该去那里。
  • 好的 - 让我们知道如何将其转换为存储过程。

标签: sql-server sql-server-2008 reporting-services ssrs-2008 ssrs-2008-r2


【解决方案1】:

您不能使用数据集中的值来创建参数值。 Parameter 用于创建 DataSet,因此该参数的值将不可用。

我相信这将完成您想要做的事情。首先,您的新查询是:

SELECT 
Inmast.fpartno
, inmast.fdescript
, inmast.fonhand
, inmast.fnonnetqty
, inmast.fcstscode
, inmast.fsource
, inmast.fprodcl
, inprod.fpc_desc
, inmast.fsafety
, inmast.fbook
, inmast.fonorder
, inmast.fproqty
, inmast.freordqty
From inmast  
inner join inprod 
    on inmast.fac + inmast.fprodcl = inprod.fac + inprod.fpc_number  
Where inmast.fcstscode = @Code and inmast.fsource = @Source
and  CASE WHEN 
(inmast.fonhand 
+ inmast.fonorder 
+ inmast.fproqty 
- inmast.fbook 
- inmast.fnonnetqty 
- inmast.fsafety
) < 0 THEN 0 ELSE 1 END = @CalculatedValue 

接下来为名为@CalculatedValue 的新参数创建两个默认值。

  1. 标签“小于 0”和值 0
  2. 标签“超过 0”和值 1

如果计算的总和小于 0,则 case 语句将返回 0。如果 >= 0,它将返回 1。您的 @CalculatedValue 将匹配该值以适当地过滤您的结果。

【讨论】:

  • 非常感谢您的帮助。在工作中被困这几天。这将对我以后的报告有很大帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多