Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];

Вниз

Вложенные 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.04 c
15-1176929722
Alx2
2007-04-19 00:55
2007.05.20
Программирование: теория и практика.


2-1178054507
Антон Шестаков
2007-05-02 01:21
2007.05.20
Проверка всех файлов


2-1177746016
Cj
2007-04-28 11:40
2007.05.20
Paramstr(?)


15-1177261165
Tempp
2007-04-22 20:59
2007.05.20
Деньги - зло!


9-1131474378
WD
2005-11-08 21:26
2007.05.20
вычисление числа Пи с заданной точностью





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский