|
|
|
| Добрый день! Сразу скажу – я не профессионал. Встал вопрос переноса БД с Access (mdb) на SQL Server 2005 с клиентом на Access (adp). Проблема в следующем:
В MSA была связка запросов:
Запрос1
SELECT Cross.№ FROM [Cross] WHERE [OE] Like "*" & Forms!Магазин!Поле105 & "*"
GROUP BY Cross.№;
Запрос2
SELECT [Статистика].№, [Запрос1].№ FROM Запрос1 LEFT JOIN [Статистика] ON [Запрос1].№ = [Статистика].№ WHERE ((([Статистика ].№) Is Not Null)) ORDER BY [Статистика].Наименование;
|
Т.е на основе Запрос1 (сгруппированного и отобранного) отбираются записи из сложного запроса [Статистика] по полю [№]
SQL Server только начал осваивать. Поэтому:
1. Как я понял Запрос1 нельзя делать хранимой процедурой, т.к. результаты выполнения её нельзя использовать как таблицу для запроса2. Правильно?
2. Так же не получится создать представление, т.к. в представлении нельзя использовать параметры (Forms!Магазин!Поле105 заменён на @Поле105). Так?
Тогда, наверно, есть следующие варианты:
1. Собрать всё в один запрос, но хотя SQL не очень силён, думаю, что в этом варианте не получится
2. В одной хр. проц. выполнить сначала Запрос1 и использовать результат в Запросе2 . Но не совсем пойму как  Хотя бы какой-нибудь примерчик….
3. Запросом1 создать временную таблицу - #Запрос1 и использовать её в Запросе2 (или как вариант – объект TABLE). Но …
А) Не очень хочется использовать временные таблицы
Б) Что будет если 5 пользователей обратятся к данной процедуре одновременно – у каждого пользователя свой параметр @Поле105 – т.е. временная таблица должна быть разная для каждого пользователя.
Подскажите, как быть? | |
|
| |
|
|
|
| Это можно решить с помошью хранимки. Сейчас нет времени. После обеда, если получится, набросаю как это сделать.
ЗЫ Сегодня могу и не добраться до офиса. Так, что пробуйте решить самостоятельно | |
|
| |