计算SSRS中非NULL的行

时间:2014-12-16 12:39:35

标签: sql-server reporting-services count ssrs-2008-r2

我想在表中对一些基本行进行编号而不混合排序。我有这样的表:

状态ProductId

A       12         
NULL    25
B       35
C       56
NULL    89
NULL    99
D       120
E       140

我想添加列,以使用相同的ProductId排序来计算非空的状态,但是,不想计算NULL行。我想要这样的结果:

  No      Status  ProductId    
  1       A       12         
          NULL    25
  2       B       35
  3       C       56
          NULL    89
          NULL    99
  4       D       120
  5       E       140

我在SQL Sever 2008,SSRS上工作。有人可以在SQL端或RDL文件中提供解决方案。

1 个答案:

答案 0 :(得分:1)

你可以这样做:

WITH CTE 
AS
(
  SELECT
    ROW_NUMBER() OVER(ORDER BY Status) AS No,
    Status, ProductId
  FROM table1
  WHERE Status IS NOT NULL
) 
SELECT 
  c.No,
  t.Status,
  t.ProductId
FROM  table1 AS t
LEFT JOIN CTE AS c ON c.ProductId = t.ProductId
ORDER BY ProductId;

您可以直接在报告中使用此查询。