首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当列为空-SSRS时,重复列的最后一个值

当列为空-SSRS时,重复列的最后一个值
EN

Stack Overflow用户
提问于 2018-03-02 10:49:33
回答 4查看 1.5K关注 0票数 4

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

我使用了以前的,最后的函数,但没有任何帮助

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-03-13 06:27:56

我们可以在SQL end执行此操作,并将数据提取到SSRS。

步骤:

  1. 如果需要的话,不要转动
  2. 获取粒度列中的数据。这里是绝对月份
  3. 然后,使用SQL方法复制Nulls/ last值,这些值为空,最后一个值为Ref: 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

然后分别填满所有的地方。请参阅下面的输出

票数 1
EN

Stack Overflow用户

发布于 2018-03-09 01:26:36

如果你这样做,那是可以实现的:

步骤1。对于源,构建一个sql查询,其中按年份、AbsoluteMonth等对数据进行分组。

因此,对于每年/ AbsoluteMonth对,报告只有一个值。

步骤2。使用以下公式:

代码语言:javascript
运行
复制
=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)。

票数 1
EN

Stack Overflow用户

发布于 2018-03-10 02:59:05

在传递要报告的数据之前,最好先将带有最后值的剩余空白记录插入数据集。

我猜你的桌子是矩阵的。

代码语言:javascript
运行
复制
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 @MatrixData
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49067609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档