单列上的MTD表达 - SSRS

时间:2014-08-19 09:04:34

标签: reporting-services

我需要一些帮助。 我无法在SSRS上为单个列创建“月到日”表达式。

我在论坛中测试了类似问题中的以下表达式,但它在变量“d”下方给出了一条曲折的线条

=IIF(Fields!CreateDate.Value >= DateAdd(d,-7,Today()), Sum(Fields!Sales.Value), 0)

如果我运行它,当然我得到一个错误告诉我'd'没有声明。 ;)

我将其更改为... DateAdd(“d”, - 7,Today()),Sum(Fields!Sales.Value)...按照示例进行操作,并且波浪线在“today()”的括号下方“不用说......但仍然无法正常工作。

我试过一个Dateadd(mm..Datediff ......但仍然没有。

我的报告包含以下列:

Country | CustomerName | Sales | InvNotProcessed | Open Order | Orders | TotalbyCust 

我需要的是仅在名为“Sales”的列中显示新的MTD销售,而其他三个显示查询的其余部分,应该打开,因为某些订单可能需要很长时间才能生产和开具发票。最后一列汇总了所有其他列的总数。

非常感谢任何帮助。

此致 埃里克

2 个答案:

答案 0 :(得分:1)

您需要在SSRS表达式中使用DateInterval。此外,您的表达式仅计算上周,而不是月初至今。尝试总结自本月第一天起的任何事情的销售价值:

=SUM(IIF(Fields!CreateDate.Value >= DateAdd(DateInterval.Day, 1 - DatePart(DateInterval.Day, Today), Today), Fields!Sales.Value, 0))

答案 1 :(得分:0)

谢谢大家

我解决了这个问题,但我采用了不同的方法。 我在我的查询中将MTD表达式添加到Sales列,如下所示:

    (CASE WHEN Documents.Status = 'Posted' AND Documents.DocType = 'CINV' AND 
         (
          DATEDIFF(MONTH,Documents.CreateDate,GETDATE()) = 0 AND  
          Documents.CreateDate <= GETDATE())THEN DocumentsLines.TransSell END
         ) AS Sales, 

然后我在报告服务的单元格上使用了SUM(Fields!Sales.Values)。

此致

埃里克