Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использовать результат одного запроса в другом как таблицу / 7 сообщений из 7, страница 1 из 1
17.10.2001, 08:18
    #32015465
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
Возникла необходимость использовать результат одного запроса в качестве одной из таблиц с данными для другого запроса (все это должно помещаться в Stored Procedure).
Я только начал изучать MSSQL, подскажите, как это можно сделать.
Хотел сделать с помошью CREATE VIEW , но говорят в SP он не работает.
Пробовал сделать вложенную таблицу в FROM, но выдается ошибка, что не знает он поля из этой таблицы.
...
Рейтинг: 0 / 0
17.10.2001, 08:25
    #32015466
AlexR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
Select t_1.row_1,t_2.row_1
from table_1 as t_1, (select row_1 from table_2) as t_2 (row_1)
...
Рейтинг: 0 / 0
17.10.2001, 08:31
    #32015467
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
>Хотел сделать с помошью CREATE VIEW , но говорят в SP он не работает.
Кто "он"-то - CREATE VIEW не работает, или SELECT .... FROM myview не работает, или ... ?Покажите код, с помощью которого вы пытаетесь это сделать

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

В общем случае конструкции вида

SELECT * FROM (SELECT * FROM myview1 ) AS a INNER JOIN (SELECT * FROM myview2 ) AS b ON a.id=b.id

прекрасно работают
...
Рейтинг: 0 / 0
17.10.2001, 10:23
    #32015483
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
Вообщем вот запрос, который я пытаюсь сделать.

SELECT TOP 1000
list_room.UID,
list_room.UIDParent,
list_room.Folder,
list_room.DTInsert,
list_room.DTUpdate,
list_room.Caption,
list_room.RoomSquare,
view_journal.Taxrate,
view_journal.CountPlace,
view_journal.UIDQuality,
view_journal CaptionQuality,
list_room.UIDOwner
FROM
list_room,
(select
journal_room_var.UIDRoom,
journal_room_var.Taxrate,
journal_room_var.CountPlace,
journal_room_var.UIDQuality,
list_quality.Caption AS CaptionQuality
from journal_room_var,
list_quality
where (journal_room_var.UIDQuality = list_quality.UID) and
str(UIDRoom)+convert(varchar(30),DTActual) IN
(SELECT str(UIDRoom)+convert(varchar(30),max(DTActual))
FROM journal_room_var
group by UIDRoom)) AS view_journal
WHERE
(list_room.UID = view_journal.UIDRoom) and
((list_room.Caption LIKE @Caption+'%') or (@Caption IS NULL)) and
((@RoomSquareMin<=list_room.RoomSquare) or (@RoomSquareMin IS NULL)) and
((@RoomSquareMax>=list_room.RoomSquare) or (@RoomSquareMax IS NULL)) and
(@Folder=list_room.Folder) and
((@UIDParent=list_room.UIDParent) or (@UIDParent IS NULL))
ORDER BY list_room.UID
END
...
Рейтинг: 0 / 0
17.10.2001, 11:18
    #32015492
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
Так вроде все нормально, но в 12-той строчке отсутствует точка

view_journal CaptionQuality,
...
Рейтинг: 0 / 0
17.10.2001, 11:38
    #32015496
Underking
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
Точка наверно потерялась когда копировал.
Мне вот другое интересно, для чего делают перечисление полей в конце вставленного запроса после AS ?

И еще вопрос: У меня сейчас даный селект выбирает записи, которым соответствует какая-то запись из внутреннй выборки (view_journal). Как сделать, чтоб выбтралтсь все записи из list_room , а которым из них соответствует запись из view_journal, чтоб просто подставлялись нужные значения из нее.
По идее это надо сделать через Join, но я себе плохо представляю как.
...
Рейтинг: 0 / 0
17.10.2001, 11:46
    #32015497
Pandre
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использовать результат одного запроса в другом как таблицу
select
...
from
list_room
left outer join (select ...) AS view_journal on list_room.UID = view_journal.UIDRoom
where
...

из where list_room.UID = view_journal.UIDRoom надо убрать
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Использовать результат одного запроса в другом как таблицу / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]