11.12.2017, 18:09 [+3 UTC]
в нашей команде: 2 371 чел. | участники онлайн: 10 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
11.12.2017, 18:06

Последний вопрос:
11.12.2017, 16:15

Последний ответ:
11.12.2017, 17:33

Последняя рассылка:
11.12.2017, 17:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
26.03.2011, 09:48 »
клешаева людмила виктровна
огромное спасибо что вы откликнулись на мою просьбу [вопрос № 182604, ответ № 266402]

РАЗДЕЛ • Базы данных

Установка и настройка серверов баз данных, таблицы и запросы.

[администратор рассылки: Коцюрбенко Алексей aka Жерар (Мастер-Эксперт)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 498
solowey
Статус: 8-й класс
Рейтинг: 145
Megaloman
Статус: Академик
Рейтинг: 113

Перейти к консультации №:
 

Консультация онлайн # 65441
Раздел: • Базы данных
Автор вопроса: Юра
Отправлена: 04.12.2006, 03:32
Поступило ответов: 4

Здравствуйте уважаемые эксперты.
Возможно ли сформировать на SQLе такой запрос "А", который бы осуществлял поиск среди записей полученных в результате выполнения другого запроса "В". Иными словами должен выполнятся поиск среди результатов предыдущего поиска.
Заранее всем признателен за любую оказанную помощь.

Состояние: Консультация закрыта

Ответ # 129870 от Grigory

Здравствуйте, Юра!
Если речь идет о SQL Server, то это можно сделать следующим образом: создать функцию, которая будет возвращать таблицу, а потом выбирать из результатов, возвращенных функцией.
Например вот так:
create function func()
returns table
as
return (select * from table1)

а потом вот так:
select * from func()


Консультировал: Grigory
Дата отправки: 04.12.2006, 07:03

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 129872 от Синельников Сергей

Здравствуйте, Юра!

В самом простои случае
Select * from (Select * from T1). Только не все реализации SQL могут поддерживать такую конструкцию. У Вас СУБД какая ?


Консультировал: Синельников Сергей
Дата отправки: 04.12.2006, 07:05

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 129914 от Santana

Здравствуйте, Юра!
Если я правильно понял, делаем запрос, получаем результирующий набор, потом из него делаем выборку. Элементарно, первый результат загоняем во временную таблицу... и из нее выбераем

declare #temp (список полей с типами)

insert into #temp (список полей)
select * from worktable

select * from #temp


Консультировал: Santana
Дата отправки: 04.12.2006, 10:35

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 130031 от Игорь Елизаров

Здравствуйте, Юра!
Да, конечно это можно.
результат запроса это та же таблица и обращаться к ней можно как к любой таблице и даже устанавливать связи. Это иногда очень полезно.

Вот пример:
select * from a1 inner join (select id, cost from b) tt on a1.id=tt.id

то есть выполняется запрос к таблице B , этот запрос именуется tt
и потом используется в запросе к таблице A1 (связь по полю id )

Этот подход можно использовать для поэтапного отлаживания запросов.
Отлаживаем вначале вложенный запрос, а потом основной.

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

С уважением, Игорь


Консультировал: Игорь Елизаров
Дата отправки: 04.12.2006, 23:47

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.17411 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн