什么是表达正确的语法来计算日期列行如果两个参数值是在约会吗?

问题描述 投票:0回答:2

我有我的查询@selectedMonth和@selectedYear 2个参数。我有5个不同的日期栏,我需要计算所有行的每一列,其中年份和月份的日期与所选的参数。我已经设置了每个参数与一组可用值(月名1至12月与值分别为1到12)和(年2018至2022年的包容性和价值观是相同的标签)。 enter image description here在我的SQL查询,我已经使用了WHERE子句中的以下内容:(更新19年4月2日,以显示整个where子句)

   (DATEPART(mm, createdon) = @selectedMonth) AND (DATEPART(YY, createdon) = @selectedYear) OR (DATEPART(mm, sb_provisionalstatuschangedate) = @selectedMonth) AND (DATEPART(YY, sb_provisionalstatuschangedate) = @selectedYear) OR (DATEPART(MM, sb_confirmedstatuschangedate) = @selectedMonth) AND (DATEPART(YY, sb_confirmedstatuschangedate) = @selectedYear) OR

(sb_status = 3)和(statecode = 1)AND(DATEPART(MM,sb_eventdate)= @selectedMonth)AND(DATEPART(MM,sb_eventdate)= @selectedYear)OR(statecode = 2)和(DATEPART(MM,actualclosedate)= @selectedMonth)AND(DATEPART(YY,actualclosedate)= @selectedYear)

我已经使用在SSRS表下面的表达式(在第一列中 - 我将需要在其他4日期栏类似):

=SUM(iiF(Fields!createdon.Value=Parameters!selectedMonth.Value AND Fields!createdon.Value=Parameters!selectedYear.Value),1,0)

我想我需要表达,因为其中使用OR的跨5日期列,我只希望它来计算每列中的有效日期。

我不太清楚问题所在。我想,我可能需要指定字段!createdon.value的“月”部分等于参数值? (和同为一年),但我不能工作了如何做到这一点的一种表现。或者,也许语法是完全错误的。

很抱歉,但我已经看过这个这么久,我不能看到树林里的树木。如果有人能在正确的方向指向我,我很高兴地继续研究如何做,但需要微调,请。

parameters ssrs-2008-r2
2个回答
1
投票

在SSRS表内的表达式必须是(并修正每个日期栏):

= SUM(IIF(日期部分( “M”,字段!createdon.Value)=参数!selectedMonth.Value和日期分量( “YYYY”,字段!createdon.Value)=参数!selectedYear.Value,1,0))


0
投票

你是在SQL查询中使用WHERE子句限制的数据集,因此你不要在SSRS表表达式,插入一个聚集函数或添加汇总到您的详细信息行。

© www.soinside.com 2019 - 2024. All rights reserved.