我们能在SSRS中重复列的最后值吗?与附件一样,最后一列中的所有空行都应填充最新的值702。

我使用了以前的,最后的函数,但没有任何帮助
发布于 2018-03-13 06:27:56
我们可以在SQL end执行此操作,并将数据提取到SSRS。
步骤:
select a.AbsoluteMonth,Mon ,first\_value(a.S1\_pax)over(partition by a.v1\_p order by num ) as S\_Pax ,first\_value(a.S2\_pax)over(partition by a.v2\_p order by num ) as S2\_Pax from (select *,sum(当S1_pax为null时,case为0 OTHER1End)从v1_p (按num排序),sum( S2_pax为null,而S2_pax为0 OTHER1End)从X_Table (order )到v2_p )a然后分别填满所有的地方。请参阅下面的输出

发布于 2018-03-09 01:26:36
如果你这样做,那是可以实现的:
步骤1。对于源,构建一个sql查询,其中按年份、AbsoluteMonth等对数据进行分组。
因此,对于每年/ AbsoluteMonth对,报告只有一个值。
步骤2。使用以下公式:
=IIf(IsNothing(Sum(Fields!Amt.Value)), Last(Fields!Amt.Value, "Year"), Sum(Fields!Amt.Value))这里的“年份”是组名,Amt -您的字段名,可能是R_Pax。
Step3.(可选)如果数据不是自然排序的,则对其排序以提供正确的最后值。
第一步非常重要。否则,空值的单元格将不会显示最后一个总,它将显示一个月的最后一个值,因此如果月份(1)的值为30、50、60和月份(2)没有任何值,那么它将显示月份(2)、月份(3)等的60,而不是sum(30+50+60)。
发布于 2018-03-10 02:59:05
在传递要报告的数据之前,最好先将带有最后值的剩余空白记录插入数据集。
我猜你的桌子是矩阵的。
DECLARE @Today DATETIME
SET @Today = GETDATE()
DECLARE @MatrixData TABLE (
Month1 INT
, Year1 INT
, Value INT
)
INSERT INTO @MatrixData (Month1, Year1, Value)
SELECT MONTH(DATEADD(MONTH, Id * -1, @Today)) AS Date1Month, YEAR(DATEADD(MONTH, Id * -1, @Today)) AS Date1Year, Id * 10 AS Value1
FROM (
SELECT TOP 60 ROW_NUMBER() OVER (ORDER BY Id) AS Id
FROM SysObjects
) A
ORDER BY Date1Year, Date1Month
SELECT * FROM @MatrixData
-- Insert blank month of last year with last value
INSERT INTO @MatrixData (Month1, Year1, Value)
SELECT A.RunningMonth, A1.MaxYear, A1.LastValue
FROM (
SELECT TOP 12 ROW_NUMBER() OVER (ORDER BY Id) AS RunningMonth
FROM SysObjects
) A
INNER JOIN (
-- Get Last Value in @MatrixData
SELECT A.MinMonth, A.MaxMonth, A.MaxYear, A1.Value AS LastValue
FROM (
-- Get Max Month Last Year in @MatrixData
SELECT MAX(A1.Month1) AS MinMonth, A.MaxMonth, A.MaxYear
FROM (
-- Get Max Month & Max Year
SELECT MAX(Month1) AS MaxMonth, MAX(Year1) AS MaxYear
FROM @MatrixData
) A
INNER JOIN @MatrixData A1 ON A.MaxYear = A1.Year1
GROUP BY A.MaxMonth, A.MaxYear
) A
INNER JOIN @MatrixData A1 ON A.MinMonth = A1.Month1 AND A.MaxYear = A1.Year1
) A1 ON A.RunningMonth > A1.MinMonth AND A.RunningMonth <= A1.MaxMonth
SELECT * FROM @MatrixDatahttps://stackoverflow.com/questions/49067609
复制相似问题