Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS SQL server

Вопросы связанные с MS SQL server

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Связка двух запросов
 
 автор: kenin   (11.11.2010 в 19:44)   личное сообщение
 
 

Добрый день! Сразу скажу – я не профессионал. Встал вопрос переноса БД с 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 – т.е. временная таблица должна быть разная для каждого пользователя.

Подскажите, как быть?

  Ответить  
 
 автор: Мюллер   (12.11.2010 в 11:08)   личное сообщение
 
 

Это можно решить с помошью хранимки. Сейчас нет времени. После обеда, если получится, набросаю как это сделать.

ЗЫ Сегодня могу и не добраться до офиса. Так, что пробуйте решить самостоятельно

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList