使用DECLARE创建列号

时间:2017-10-02 13:50:00

标签: tsql reporting-services ssms multiple-columns declare

运行查询时,我需要将列号应用于每一行,这样当我使用查询在SSRS中创建报表时,我可以告诉报表将哪些数据放在哪一列中。例如:

  Case 1  |  Jane Doe       | Col 1 
  Case 1  |  John Doe       | Col 2
  Case 2  |  Sally Smith    | Col 1 (only name in case)

我当前的查询使用:

DECLARE @NumOfCols int=2;

然后告诉它如何分隔列:

(row_number() over (partition by case_num order by child_first) + @NumOfCols - 1)% @NumOfCols + 1 as DisplayCol

问题是,当我运行查询时,即使结果只有一个名称(因此只需要一列),我的数据也会重复。它似乎正在使它成为强制性的第1列和第2列,即使第二列没有数据也是如此。像这样:

  Case 1  |  Jane Doe     | Col 1 
  Case 1  |  John Doe     | Col 2
  Case 2  |  Sally Smith  | Col 1 (only name in case)
  Case 2  |  Sally Smith  | Col 2 (duplicating)

我希望这是有道理的。关于如何消除重复数据的任何想法?

0 个答案:

没有答案