#sql
#sql
Вопрос:
Я получаю некоторые данные с одним значением, такие как
Number Users in system
Number of Books in system
Number books checked out by a particular user
Тогда для любого пользователя мне также нужно будет вернуть набор записей:
ISBN of each book checked out for a month
Другими словами, это то, что я хочу получить обратно
26 ( number users in system )
256 ( number books in system )
19 ( books checked out by user )
12345454, 1235544, 1243433, 1345993, 3349934 ( List of ISBNs for user for month )
Как лучше всего возвращать вышеуказанные данные в клиентское приложение?
Еще немного разъяснений, какой оператор SQL вернет эту информацию?
Я получил «Выбрать ISBN из записей, где user = ‘user’ — тот, который я получаю.. другие значения — это то, что меня бросает …? Это так же просто, как «выбрать количество (*) из пользователей» для количества пользователей? (и т.д.)
другими словами, будет ли сохраненный процесс примерно таким:
Select count(*) from users
Select count(*) from books
Select count(*) from checkouts where user = 'user'
Select ISBN from Records where user = 'user'
Это тот тип хранимой процедуры, который мне нужно написать?
Спасибо
Комментарии:
1.
ISBN for each book...
это не возврат с одним значением.2. Точно, результатами для ISBN будет набор, например, 123123, 123124, 1232431, 123141, 1231234
3. Итак, в чем тогда ваш вопрос?
4. Я думаю, вы очень близки к своему ответу. Похоже, вам просто нужно обернуть несколько запросов в инструкцию Create Stored Procedure.
5. Спасибо… Я не думал, что это будет так просто … !
Ответ №1:
Хранимые процедуры в Sql Server могут возвращать несколько наборов результатов. Вы можете вызвать один сохраненный процесс с вашими входными данными и получить результаты нескольких запросов за один раз. ОДНАКО вам необходимо закодировать для получения нескольких наборов результатов или выбрать сохраненную библиотеку обработки процедур, которая может обрабатывать несколько наборов результатов.
Стив Г.
Комментарии:
1. Стив Г. — спасибо… Я написал много клиентского кода, который обрабатывает несколько наборов результатов… что я хотел бы знать, так ЭТО ТО, КАК эти множественные наборы были сгенерированы на стороне SQL … в частности, данные с «одним» значением, которые я упоминаю в вопросе.
2. Это проще, чем вы думаете. В сохраненной процедуре просто выполните несколько запросов, чтобы получить несколько наборов результатов. Для одного значения у вас может быть один запрос (первый или последний, чтобы упростить вашу жизнь), генерирующий это единственное значение. На стороне клиента вы можете просто ожидать, что запрос, возвращающий ваше единственное значение, будет содержать одну строку данных с одним столбцом.