Показать сообщение отдельно
Старый 26.11.2009, 11:57   #2  
a33ik is offline
a33ik
Чайный пьяница
Аватар для a33ik
MCP
MCBMSS
Злыдни
Соотечественники
Most Valuable Professional
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,243 / 896 (36) +++++++
Регистрация: 02.07.2008
Адрес: Greenville, SC
Цитата:
Сообщение от Kipetcoff Посмотреть сообщение
Создаю .rdl отчет в CRM. Есть 2 таблицы. Для каждой свой Dataset. Оба запроса к Dataset используют предварительную фильтрацию. Т.е.как в в запросе к первому DS используется конструкция FilteredNew_loan AS CRMAF_New_loan
Код:
SELECT     CRMAF_New_loan.new_loanid, CRMAF_New_loan.new_account_number, CRMAF_New_loan.new_estdate, CRMAF_New_loan.new_legalentityname, 
                      CRMAF_New_loan.owneridname, CRMAF_New_loan.new_clientname, FilteredNew_event.new_descriptionen, FilteredNew_event.new_name, 
                      FilteredNew_event.new_eventsid, FilteredNew_event.new_event_owneridname, FilteredNew_event.new_dateutc, FilteredNew_event.new_project, 
                      FilteredNew_event.new_durations, FilteredNew_specialistbreakdown.new_rate
FROM         FilteredNew_loan AS CRMAF_New_loan INNER JOIN
                      FilteredNew_event ON CRMAF_New_loan.new_loanid = FilteredNew_event.new_eventsid LEFT OUTER JOIN
                      FilteredNew_specialistbreakdown ON FilteredNew_specialistbreakdown.new_specialisrateid = CRMAF_New_loan.new_loanid AND 
                      FilteredNew_specialistbreakdown.new_useridid = FilteredNew_event.new_event_ownerid
так и второй запрос использует FilteredNew_loan AS CRMAF_New_loan
Код:
SELECT     FilteredNew_specialistbreakdown.new_name, FilteredNew_specialistbreakdown.new_rate
FROM         FilteredNew_loan AS CRMAF_New_loan INNER JOIN
                      FilteredNew_specialistbreakdown ON FilteredNew_specialistbreakdown.new_specialisrateid = CRMAF_New_loan.new_loanid
Проблема в том,что в первом случае предварительная фильтрация работает, а во втром выбирает все подряд.
Есть такая тема,что дважды нельзя использовать CRMAF_New_loan в одном запросе. Но это в одном запросе,а не Dataset, кроме того я пробовал удалять первую таблицу и предварительная фильтрация во второй не работает. Кто-нить может что-нить подсказать?
В таком случае лучше перестроить модель Вашего отчёта на использование параметров префильтрации.

Методика такая:
1. Создаётся параметр отчёта с названием CRM_<название сущности>.
2. Выборки запроса необходимо переписать под динамический SQL, т.е. прежнюю конструкцию

Код:
Select * From FilteredAccount CRMAF_Account
Необходимо преобразовать в такую:

declare @Query VarChar(Max)
Set @Query = 'Select * From (' + @CRM_Account + ') t'
Exec(@Query)

3. В датасете отчёта замапить созданный параметр отчёта CRM_Account на параметр запроса @CRM_Account.
__________________
Эмо разработчик, сначала пишу код, потом плачу над его несовершенством.

Подписывайтесь на мой блог, twitter и YouTube канал.
Пользуйтесь моим Ultimate Workflow Toolkit
За это сообщение автора поблагодарили: Kipetcoff (1).