Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Access
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2010, 19:06   #1
JustinDEbass
 
Регистрация: 24.10.2009
Сообщений: 6
Печаль Запрос на удаление

Здрасвуйте.
Помогите пожалуйста сделать запрос.
Вот трактовка запроса: Удалить информацию о знакомом, удаление возможно только в том случае если ни вы ему ни он вам ничего не должны.
Вот у меня 4 таблицы:
В "Моя Библиотека" храняться данные о библиотеке дисков и книг, в ней как мои так и кто мне должен.
В "Знакомые" тут размещена информация о знакомых которым я отдалживаю или которые у меня отдалживают, есть знакомые кторым ни я не они мне ну должны.
В "Мне должны" в этой таблице размещены ФИО знакомых которые мне должны и так же что именно должны и дата возврата.
В "Я должен" здесь информация о то что я отдалживаю.
Надо вот, как я понял, мы вводим с клавиатуры ФИО знакомого далее определём должен ли он нам или мы ему если нет то удалёем.
К сожалению как я не пытался так и не получилось =(
Помогите пожалуйста.
PS: Вот сама БД http://depositfiles.com/files/ehmyy72ij
JustinDEbass вне форума Ответить с цитированием
Старый 31.03.2010, 08:26   #2
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте JustinDEbass.
Для увеличения вероятности получения помощи, выкладывайте архив с заранее подготовленным файлом БД (подготовка подразумевает - избавление от избыточных данных, избавление от OLE объектов и сжатие средствами MS Access) непосредственно на странице с вопросом. Сторонние сайты не всем доступны и нет желания вместе с Вашим продуктом получать "бесплатные банеры" с этих сайтов.
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 01.04.2010, 12:51   #3
JustinDEbass
 
Регистрация: 24.10.2009
Сообщений: 6
Восклицание

Извините...
Вот моя база данных
Домашняя библиотека1.rar
JustinDEbass вне форума Ответить с цитированием
Старый 01.04.2010, 19:00   #4
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте JustinDEbass.
"..удаление возможно только в том случае если ни вы ему ни он вам ничего не должны.."
Если в Вашем случае проверка "должен-не должен" выполняется по полю [Дата возврата] (заполнение которого говорит о возврате) SQL конструкция запроса на удаление может быть такой:
Код:
delete
FROM Знакомые
WHERE ФИО In (
	SELECT [Мне должны].ФИО 
	FROM [Мне должны] 
	WHERE [Мне должны].[Дата возрата] Is Not Null AND [Мне должны].ФИО=Знакомые.ФИО) 
AND ФИО In (
	SELECT [Я должен].ФИО  
	FROM [Я должен] 
	WHERE [Я должен].[Дата возрата] Is Not Null AND [Я должен].ФИО=Знакомые.ФИО)
Рекомендации:
1. в таблице "Мне должны" создайте поле связи (оно не должно быть ключевым) и по нему установите связь с таблицей "Моя библиотека" (один-много)
2. откажитесь от использования "длинных имен" (содержащих пробелы) в названиях объектов БД (поля, таблицы, формы,...)
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 03.04.2010, 06:50   #5
JustinDEbass
 
Регистрация: 24.10.2009
Сообщений: 6
По умолчанию

Спасибо за ответ.
Я думаю в условии задания требуется: Мы вводим с клавиатуры ФИО знакомого, далее запрос проверяет есть ли он в таблицах Мне должны и Я должен, если нет то удаляет, если да то не удаляет...
JustinDEbass вне форума Ответить с цитированием
Старый 03.04.2010, 19:34   #6
Teslenko_EA
Участник клуба
 
Регистрация: 10.08.2009
Сообщений: 1,796
По умолчанию

Здравствуйте JustinDEbass.
"..в условии задания требуется: Мы вводим с клавиатуры ФИО знакомого, далее..если нет то..., если да то... ", будет выполнять подобная SQL конструкция:
Код:
DELETE 
FROM Знакомые
WHERE ФИО Not In (
             SELECT [Мне должны].ФИО 
	FROM [Мне должны] 
	WHERE [Мне должны].[Дата возрата] Is Null AND [Мне должны].ФИО=Знакомые.ФИО) 
And ФИО Not In (
             SELECT [Я должен].ФИО
	FROM [Я должен]
	WHERE [Я должен].[Дата возрата] Is Null AND [Я должен].ФИО=Знакомые.ФИО)
And ФИО = [Знакомый]
удалит "знакомого" с которым Вы не обменивались вовсе или поле [Дата возврата] таблиц "долгов", содержит дату (обмен завершен)
Евгений.

Последний раз редактировалось Teslenko_EA; 03.04.2010 в 19:37.
Teslenko_EA вне форума Ответить с цитированием
Старый 05.04.2010, 16:58   #7
JustinDEbass
 
Регистрация: 24.10.2009
Сообщений: 6
Печаль

Всё равно этот запрос, может удалить любого знакомого, хоть этот знакомый должен или я ему должен =*(
JustinDEbass вне форума Ответить с цитированием
Старый 11.04.2010, 08:15   #8
JustinDEbass
 
Регистрация: 24.10.2009
Сообщений: 6
По умолчанию

Большое спасибо за помощь, всё получилось
JustinDEbass вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление RX artemavd БД в Delphi 1 14.06.2009 19:24
Запрос на удаление с условием Dimok82 SQL, базы данных 1 13.03.2009 18:19
запрос на удаление ГОСЕАН Помощь студентам 9 13.08.2008 10:03
запрос ссылается на несвязанный с ним запрос kolebatel SQL, базы данных 0 11.06.2008 12:50