Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.03 c
2-1177656093
Atb
2007-04-27 10:41
2007.05.20
Проблема с типами


1-1174736364
gosha73
2007-03-24 14:39
2007.05.20
Указатель на метод класса


15-1177150699
ArtemESC
2007-04-21 14:18
2007.05.20
А как в PHP вывести нормально дату и время в строке?


2-1178127636
ppcumax
2007-05-02 21:40
2007.05.20
Запуск программы


1-1174589370
Кто ответит на вопрос?:)
2007-03-22 21:49
2007.05.20
Управление Excel-ем