2013-04-13 4 views
0

Я пытаюсь написать запрос отчета, который побуждает пользователя отчета вводить массив значений. Я попытался использовать что-то вроде:Запрос пользователя для нескольких значений (и использование результатов в запросе)

SELECT  class_style_view.Course_Code 
FROM   class_style_view class_style_view_1.Course_Code 
WHERE  (class_style_view.Course_Code IN ([email protected]) 

Я не уверен, как я мог/должен был писать это. Я хочу, чтобы подсказка подошла к моему отчету и смогла добавить что-то вроде этого: ('41229', '65002', '65435', '64059'), поэтому я могу запросить все элементы в таблице с переменной набор значений Course_Code.

ответ

1

Обычный метод для этого - сначала создать набор данных, который включает в себя все возможные варианты для пользователя. Например, это может быть:

SELECT DISTINCT class_style_view.Course_Code FROM class_style_view 

Затем настройте параметр, чтобы вызвать пользователя. Не забудьте установить параметр «Разрешить несколько значений». Задайте доступные значения из запроса и выберите набор данных, который вы только что создали.

Теперь вы можете создать запрос, использующий этот параметр:

SELECT * FROM class_style_view where Course_Code in (@MyParameterName) 

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

+0

В выпадающем списке более 90 000 наименований. Я не уверен, как разбирать строку. –

+0

Существует множество способов разбора строки с разделителями-запятыми в SQL, например http://stackoverflow.com/questions/5738834/how-to-parse-a-comma-delimited-string-of-numbers-into-a- time-orderid-table , но если вы можете сломать элементы 90K, вы можете дать несколько выпадающих списков, возможно, первое позволит им выбрать диапазон отделов или дат или префикс класса, а затем второе раскрывающееся меню для возможные варианты. –

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