Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS 2008R2 Матрица замена пустых полей на 0 / 4 сообщений из 4, страница 1 из 1
19.11.2010, 10:20
    #36965378
Max Kvt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RS 2008R2 Матрица замена пустых полей на 0
Здравствуйте.
Отчет на RS 2008R2. Основной элемент - Матрица.
Результирующий запрос из базы представляет собой что то вроде:
ID, NUMBER
1, '20100101'
2, '20100201'
3, '20100301'
5, '20100101'
6, '20100201'
В отчете должно быть так:
'20100101' | '20100201' | '20100301'|
1 2 3
5 6 0
А по факту
'20100101' | '20100201' | '20100301'|
1 2 3
5 6 (пусто)
Как вывести 0 вместо пустого значения?

пробовал сравнивать выводимое после с is nothing - не помогло
пробовал В опциях поля ставить SHOW ZERRO AS - тоже не помогло
...
Рейтинг: 0 / 0
19.11.2010, 11:27
    #36965541
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RS 2008R2 Матрица замена пустых полей на 0
Max Kvtпробовал сравнивать выводимое после с is nothing - не помоглоПокажите код.
...
Рейтинг: 0 / 0
19.11.2010, 13:16
    #36965850
Max Kvt
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RS 2008R2 Матрица замена пустых полей на 0
=IIF(Fields!Rest_spis.Value is nothing, 0, Fields!Rest_spis.Value)
...
Рейтинг: 0 / 0
22.11.2010, 18:45
    #36970469
SQLPowerUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RS 2008R2 Матрица замена пустых полей на 0
Max Kvt,

Можно попробовать подготовить данные на стороне сервера. Как я правильно понял, если вместо
Код: plaintext
1.
2.
3.
4.
5.
6.
ID   NUMBER
  1     20100101 
  2     20100201 
  3     20100301 
  5     20100101 
  6     20100201 
будет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
ID   NUMBER
  1     20100101 
  2     20100201 
  3     20100301 
  5     20100101 
  6     20100201 
  0     20100301 
то матрица отобразит то, что надо.

SQL - запрос для тестовых данных:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
declare @t table (idx int, Number datetime)

insert @t
 select  1 , '20100101' union all 
 select  2 , '20100201' union all
 select  3 , '20100301' union all
 select  5 , '20100101' union all
 select  6 , '20100201'

select * from @t

declare @tmp table (num int identity, Number datetime)
;with cte as
(
 select count(*) [kolvo], Number from @t group by Number
)
insert @tmp
 select cte.Number from cte
 cross join (select top (select max(kolvo) from cte)  1  as a from INFORMATION_SCHEMA.COLUMNS) b
--select * from @tmp tmp

;with cte as
(
 select *, row_number() over (order by (select  1 )) num from @t
)
select isnull(cte.idx, 0 ) [idx], isnull(cte.Number,tmp.Number) [Number] from @tmp tmp
left join cte on (tmp.num = cte.num)
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / RS 2008R2 Матрица замена пустых полей на 0 / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]