Включить NULL в каждую группу сведений в SSRS

В SSRS у меня есть список, скажем, таблица с двумя столбцами: имя и номер, например:

NAME NUMBER
John 123
John 456
John NULL

Имя никогда не бывает нулевым, но число может быть. В этом случае я хочу, чтобы отчет включал NULL в каждую группу, например:

GROUP 1:
John NULL
John 123

GROUP 2:
John NULL
John 456

Однако SSRS помещает нуль в группу самостоятельно. Как мне это сделать?


person Lynx Kepler    schedule 03.01.2011    source источник


Ответы (1)


Вы сказали SSRS сгруппировать по столбцу NUMBER, поэтому он создаст отдельную группу для каждого значения в столбце NUMBER, а затем отобразит эти строки. Чтобы получить то, что вы хотите, вы должны сделать так, чтобы набор данных содержал нужные вам строки.

Select Name, Number, cast(Number as varchar(50)) as displayvalue
From mytable 
UNION ALL
Select m.Name, m.Number, 'NULL' as displayvalue
From mytable m
Where exists(Select 1 from mytable where Name=m.Name and Number is NULL)
Group by Name, Number

Затем сгруппируйте по столбцу Number, но создайте отчет по столбцу DisplayValue.

person Bill    schedule 03.01.2011
comment
Ваше решение удваивает накладные расходы, но решает проблему. В итоге я использовал другой подход, основанный на других деталях, которые я здесь опустил. Он также включал CAST (число AS VARCHAR (25)), где нуль рассматривался как пустая строка. Вставьте пару CASE, и бах! проблема решена. - person Lynx Kepler; 06.01.2011