SSRS-如何在连接到IBM-DB2(AS400)时从整数值中获取月份名称

时间:2019-02-12 09:02:34

标签: db2 ssrs-2008

我正在使用SSRS从查询中创建一个数据集,该查询在AS400中具有一个列,该列具有我根据条件获得的月份号。我能够获得月份号。但是当我尝试获取月份名称时,SSRS不接受查询。但是,如果我在AS400上运行相同的查询,则查询成功运行

为了测试我的查询,我使用MONTHNAME(MONTH)在AS400中运行了它,但是它成功运行,但是SSRS不接受与正确的查询相同的查询。下面是我的查询。

SELECT DISTINCT SLMONTH, MONTHNAME(SLMONTH) AS Expr1
FROM            VEHICLE.VHTSALSUM
WHERE        (SLMGCD = ?) AND (SLMODLCD = ?) AND (SLMODLYR = ?) AND (SLYEAR = ?)

1 个答案:

答案 0 :(得分:1)

您可以将月份号返回到SSRS,然后使用表达式将其转换为那里的月份名称,而不是在服务器上执行此操作。

表达式就是

=MonthName(Fields!SLMONTH.Value)

这假定AS / 400返回1到12的月份数字

就我个人而言,无论如何我认为这是一种更好的方法,因为这意味着您可以对月份进行排序。通常最好在报告中进行演示。

根据反馈进行编辑: 为此,请在参数中使用。

  1. 创建一个仅返回您月份数字的数据集。
  2. 右键单击数据集名称,然后转到属性
  3. 在“字段”标签上,添加一个名为MonthName的新字段,例如
  4. 单击字段源功能按钮,输入表达式=MONTHNAME(Fields!MonthID.Value)
  5. 然后可以在数据集中直接使用月份名称