Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / как делать разные запросы запросы в RS в зависимости от параметра? / 7 сообщений из 7, страница 1 из 1
11.11.2009, 10:42
    #36303149
еиекимек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
RS 2005
есть параметр отчета - boolean
надо сделать так чтобы если этот параметр = true то выполнялся один запрс в Data, если False - то другой
результат выполнения обоих запросов - набор данных идентичный по полям и их типу
как такое можно сделать?
...
Рейтинг: 0 / 0
11.11.2009, 11:15
    #36303254
--__Александр__--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
Ну и сделайте в качестве датасета хп,которая на вход принимает этот параметр.
А в хп напишите два запроса через if.
...
Рейтинг: 0 / 0
11.11.2009, 15:05
    #36304124
Evolex_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
Microsoft в CRM, отчетность которого построена на MSRS, делает это так, например:

Код: plaintext
1.
2.
3.
DECLARE @SQL nvarchar(max)
SET @SQL = 'select incident0.ticketnumber as ''ticketnumber'', incident0.title as ''title'', incident0.new_datetimeofincidentutc as ''new_datetimeofincidentutc'', incident0.new_actual_resolution_timeutc as ''new_actual_resolution_timeutc'', incident0.new_delayduration as ''new_delayduration'', incident0.prioritycodename as ''prioritycodename'', incident0.prioritycode as ''prioritycode'', incident0.incidentid as ''incidentid'', incident_customerid_account_accountid.new_kategorcustomername as ''incident_customerid_account_accountid_new_kategorcustomername'', incident_customerid_account_accountid.new_kategorcustomer as ''incident_customerid_account_accountid_new_kategorcustomer'' from (' + @CRM_FilteredIncident + ') as incident0 left outer join FilteredAccount as incident_customerid_account_accountid on (incident0.customerid  =  incident_customerid_account_accountid.accountid)'
EXEC ( @SQL )
...
Рейтинг: 0 / 0
12.11.2009, 11:51
    #36306233
--__Александр__--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
Evolex_,
У вас выполняется один и тот же запрос, только из расных таблиц.
А что делать если первый запрос вида
select * from T1 INNER JOIN T2 on T1.a = T2.b+2
А второй запрос вида
select * from T1 Left JOIN T2 on T1.a = T2.b+2 INNER JOIN T3 on T1.a = T3.c.
...
Рейтинг: 0 / 0
12.11.2009, 15:31
    #36307088
minya13_85
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
еиекимекRS 2005
есть параметр отчета - boolean
надо сделать так чтобы если этот параметр = true то выполнялся один запрс в Data, если False - то другой
результат выполнения обоих запросов - набор данных идентичный по полям и их типу
как такое можно сделать?
Создать 2 датасета...
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
в первом допустим будет:

if @Parametr= 0 
begin
select ..
from ...
end

ну и второй датасет:

if @Parametr= 1 
begin
select....
from...
end

получатся две таблы с одинаковыми полями..и сделай видимость таблиц в зависимости от этого параметра @Parametr
...
Рейтинг: 0 / 0
12.11.2009, 16:44
    #36307265
Bigheadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
авторСоздать 2 датасета...Оптимальнее будет создать один датасет, у которого текст запроса будет формироваться как Expression в зависимости от выбранного значения параметра.
...
Рейтинг: 0 / 0
13.11.2009, 11:10
    #36308606
Evolex_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как делать разные запросы запросы в RS в зависимости от параметра?
--__Александр__--,

Ну, видимо, так:

DECLARE @SQL nvarchar(max)
SET @SQL =
case @Flag
when 1 then 'select * from T1 INNER JOIN T2 on T1.a = T2.b+2'
wnen 2 then 'select * from T1 Left JOIN T2 on T1.a = T2.b+2 INNER JOIN T3 on T1.a = T3.c.'
else ''
end

EXEC ( @SQL )

Суть предыдущего поста была в том, чтобы показать, как в MSRS делается датасет, в котором текст запроса полностью вычисляется на этапе выполения отчета.
...
Рейтинг: 0 / 0
Форумы / Отчетные системы [игнор отключен] [закрыт для гостей] / как делать разные запросы запросы в RS в зависимости от параметра? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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