MS SQL Server 2008 - 重复记录"排名" 0

时间:2014-07-10 17:23:50

标签: sql sql-server reporting-services

下午好,

我想知道是否有更简单的方法来执行此功能。我需要做的是创建一个用户可以总结的列,以便在多个计算中使用。我通常会在前端应用程序中使用Distinct Count(例如SSRS或PowerView)来显示我需要的内容,但由于这是专为自助服务而设计的,因此使用数据的人员将无法完全理解。

以下是我正在使用的代码:

SELECT *
, [ROW] = ROW_NUMBER() OVER (
    ORDER BY T.REQUEST_ID
    )
, [CT_DIS] = CAST(CASE 
        WHEN ROW_NUMBER() OVER (
                PARTITION BY T.REQUEST_ID ORDER BY DT
                ) = 1
            THEN 1
        ELSE 0
        END AS INT)
FROM testdata as t

我确实有一些测试数据可供使用;但是我无法正确地调整小提琴。 我需要检查的列是[CT_DIS]。

使用简单查询可以非常快速地工作,但是,真正需要进入的是一个非常大的查询,它有多个CTE通过链接服务器从Oracle中提取数据,并且有近7万行(增长为每天约300-600)。问题是性能。我想最终的解决方案是通过SSIS传输数据并在之后运行CT_DIS。

是否存在返回相同结果且响应速度更快的函数?谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

此问题已得到解决。我能够使用SSIS作业来解决问题,以获取数据并加载到报表服务器级别表中。谢谢你的帮助!