Текущий архив: 2007.05.20;
Скачать: CL | DM;
Вниз
Вложенные SQL запросы в СУБД Access Найти похожие ветки
← →
Kostafey © (2007-05-04 01:52) [0]В прошлый раз имел дело с MS SQL Sever, теперь Access.
Ужесть... Но вопрос не в этом.
Скажите, пожалуйста, можно ли в Access реализовать что-то подобное
SELECT * FROM (
SELECT..
FROM ...
WHERE ...
) a
и так далее, т.е. реализовать вложенный(е) запрос(ы) ?
Есть ли вообще литература по SQL в Access
и что-нибудь по контролю и восстановлению ссылочной целостности БД в Access ?
← →
EvS © (2007-05-04 09:33) [1]
> можно ли в Access реализовать что-то подобное
Можно
← →
Kostafey © (2007-05-04 09:59) [2]Ну на том спасибо, порадовали, а синтаксис как выглядеть будет ?
Так как в [0] не работает.
P.S. Шутка по поводу что такое "..." будет очень удачной, но я уже пошутил первым !
← →
ЮЮ © (2007-05-04 10:06) [3]в MS Access 2003 такое работет:
SELECT * FROM (
SELECT DISTINCT Договор.[На Должность]
FROM Договор
) a
ORDER BY 1;
так что всё дело в ... Да и ошибку озвучит не мешало бы
← →
sniknik © (2007-05-04 10:54) [4]> Так как в [0] не работает.
естественно, "..." синтаксисом не предусмотрено.
> но я уже пошутил первым !
смысл не в том кто первый, смысл в том кому это надо...
вообще у вас что конкурс под лозунгом "кто меньше всего скажет, но тем не менее получит ответ"?
> Да и ошибку озвучит не мешало бы
зачем? просто переносим ветку в прочее и продолжаем отвлеченно трепаться. порадуется гораздо больше народу чем успешному решению "проблемы".
← →
Kostafey © (2007-05-04 12:24) [5]Уважаемые мастера ЮЮ, sniknik !
Прошу прощения ! Поторопился вчера сюда постить.
Все дело вот в чем.
Тестировал запрос я в "запросе на выборку" Access.
Если вставить в него вот такой запрос (на этот раз цитирую):
SELECT
Dogovor.NomerDogovora as [Номер договора],
Dogovor.NomerActa as [Номер акта],
TipDogovora.Tip as [Тип договора],
Dogovor.DataDogovora as [Дата договора],
Subject.Tip as [Тип субъекта],
Subject.Familiya as [Фамилия],
Subject.Naimenovanie as [Наименование],
Location.Tip as [Тип страны]
FROM Dogovor, Subject, TipDogovora, Location
WHERE Dogovor.D_S_id = Subject.S_id
and Dogovor.D_TD_id = TipDogovora.TD_id
and Subject.S_L_id = Location.L_id
Он успешно выполняется. Запрос сохраняю, закрываю.
Заново открываю. Вид запроса уже изменлся:
SELECT Dogovor.NomerDogovora AS [Номер договора], Dogovor.NomerActa AS [Номер акта], TipDogovora.Tip AS [Тип договора], Dogovor.DataDogovora AS [Дата договора], Subject.Tip AS [Тип субъекта], Subject.Familiya AS Фамилия, Subject.Naimenovanie AS Наименование, Location.Tip AS [Тип страны]
FROM Dogovor, Subject, TipDogovora, Location
WHERE Dogovor.D_S_id=Subject.S_id And Dogovor.D_TD_id=TipDogovora.TD_id And Subject.S_L_id=Location.L_id;
Но он выполняется.
Дописываю:
select *
from (
SELECT Dogovor.NomerDogovora AS [Номер договора], Dogovor.NomerActa AS [Номер акта], TipDogovora.Tip AS [Тип договора], Dogovor.DataDogovora AS [Дата договора], Subject.Tip AS [Тип субъекта], Subject.Familiya AS Фамилия, Subject.Naimenovanie AS Наименование, Location.Tip AS [Тип страны]
FROM Dogovor, Subject, TipDogovora, Location
WHERE Dogovor.D_S_id=Subject.S_id And Dogovor.D_TD_id=TipDogovora.TD_id And Subject.S_L_id=Location.L_id;
) a
Выдает: "Ошибка синтаксиса в предложении FROM"
Вот тут я и сбился с толку.
Однако если обратится к исходному варианту, т.е.
select *
from (
SELECT
Dogovor.NomerDogovora as [Номер договора],
Dogovor.NomerActa as [Номер акта],
TipDogovora.Tip as [Тип договора],
Dogovor.DataDogovora as [Дата договора],
Subject.Tip as [Тип субъекта],
Subject.Familiya as [Фамилия],
Subject.Naimenovanie as [Наименование],
Location.Tip as [Тип страны]
FROM Dogovor, Subject, TipDogovora, Location
WHERE Dogovor.D_S_id = Subject.S_id
and Dogovor.D_TD_id = TipDogovora.TD_id
and Subject.S_L_id = Location.L_id
) a
То он прекрасно работает.
Сохраняю запрос. Закрываю. Заново открываю.
Он несколько видоизменяется, но продолжает работать:
SELECT *
FROM [SELECT
Dogovor.NomerDogovora as [Номер договора],
Dogovor.NomerActa as [Номер акта],
TipDogovora.Tip as [Тип договора],
Dogovor.DataDogovora as [Дата договора],
Subject.Tip as [Тип субъекта],
Subject.Familiya as [Фамилия],
Subject.Naimenovanie as [Наименование],
Location.Tip as [Тип страны]
FROM Dogovor, Subject, TipDogovora, Location
WHERE Dogovor.D_S_id = Subject.S_id
and Dogovor.D_TD_id = TipDogovora.TD_id
and Subject.S_L_id = Location.L_id
]. AS a;
На самом деле все эти сохранения/перезапуски, открытия/закрытия мне все равно
не понадобятся, т.к. тексты запросов будут хранится во внешних файлах.
Спасибо и еще раз прошу прощения за невнимательность.
← →
Kostafey © (2007-05-04 12:30) [6]Вся ошибка заключается в ; которой заканчивается запрос.
Access ее зачем - то сам добавляет.
Страницы: 1 вся ветка
Текущий архив: 2007.05.20;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.042 c