2009-10-01 4 views
1

Я новичок в SQL Reporting Services 2008 и не могу узнать, как сделать что-то, что должно быть простым.Sql Reporting Services Параметр Вопрос

У меня есть один параметр select, который заполняется списком продавца из запроса. Это отлично работает. И у меня есть запрос набора данных, отвечающий этому параметру, который работает хорошо. Поэтому мои отчеты для одного продавца работают нормально.

Моя проблема заключается в том, что я также хотел бы иметь опцию, которая является ВСЕ продавцом, чтобы менеджер мог распечатать полный список.

Любые предложения о том, как это сделать.

ответ

2

Обычно я UNION ALL настраиваю значение в верхней части моего запроса со специальным значением, которое указывает на мой более поздний запрос, который он не должен фильтровать.

Обычно для этого я использую NULL, 0 или '%'.

Что-то вроде:

SELECT 0 [UserId], '(All Users)' [Username] 
UNION ALL 
SELECT 
    [UserId], 
    [Username] 
FROM 
    dbo.[Users] 

А затем, в последующем запросе:

SELECT * FROM Data WHERE (UserID = @UserID OR @UserID = 0) 
+0

Спасибо, это сработало. Самое сложное, что можно использовать в службах отчетов, - это тот факт, что для многих вещей нет выбора, чтобы делать то, что вы хотите, но, скорее всего, это ваш «трюк» системы, чтобы делать то, что вы хотите. Не то, чтобы это было действительно сложно, просто совсем другой способ мышления для меня в последнее время. –

1

Ваш продавец запрос, вероятно, выглядит следующим образом:

SELECT SalesPersonName FROM SalesPerson ORDER BY SalesPersonName ASC 

Вы должны изменить его это:

SELECT 1 as SortOrder, SalesPersonName FROM SalesPerson 
UNION SELECT 0 as SortOrder, 'All' ORDER BY SortOrder, SalesPersonName 

Теперь ваш запрос будет возвращать:

 
All 
Adam 
Barry 
Steve 
... 

Теперь, когда вы тянете ваши данные для отчета вы можете сделать:

WHERE (SalesPersonName = @SalesPersonName OR @ SalesPersonName = 'Все')

И убедитесь, что вы задали по умолчанию значение «Все», если этого хочет ваш менеджер.

Смежные вопросы