:: Архив конференции по VFP до 2005 года
Прошу помощи в 2-х запросах
Andrey74
Автор

Сообщений: 33
Дата регистрации: 10.02.2005
Доброе время суток!

Столкнулся с проблемой - не знаю как написать запросы для двух случаев. Прошу Вашей помощи.

Случай 1. Две таблицы, в обоих таблицах есть поле с одинаковыми данными, имя поля - iid, в первой таблице по полю iid построен первичный индекс, во второй таблице - записи с одинаковым iid могут повторяться неограниченное кол-во раз. Из первой таблицы мне необходимо выбрать только те iid, для которых нет записей с ключом iid во второй таблице.

Случай 2. Например, есть таблица с такими записями:
Номер документа Дата документа
5 19.02.2005
4 15.02.2005
3 18.02.2005
2 14.02.2005
1 10.02.2005

основное правило для значения в поле "Номер документа" - номер документа с датой более свежей, чем у предущего документа, не может иметь более высокий номер. В данном примере запись с номером документа 4 - неверная, т.к. дата у нее меньше, чем у документа, с номером 3 и более свежей датой. Мне нужно написать запрос (или несколько запросов) для того, чтобы получить такие "неверные" записи.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
1. SELECT * from Table1 WHERE iid NOT in(select iid FROM Table2)




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
2. SELECT a.* from Table1 a WHERE exists (select * from Table1 b WHERE b.Number<a.number AND b.Date>a.Date)



Отредактировано (14.03.05 11:14)


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
Andrey74
Автор

Сообщений: 33
Дата регистрации: 10.02.2005
AleksM
Большое спасибо, оба запросы работают!
Если у Вас есть минутка, объясните пожалуйста, для чего используются во втором запросе псевдонимы (не могу подобрать более точного слова, первый раз вижу такое) "a" и "b"?

Еще один вопрос: насколько я понимаю, использование SELECT позволяют только выбирать информацию из таблиц. А можно ли в VFP запросом изменить все значения одного поля (или его часть, фрагмент) на другое значение?
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Цитата:
"a" и "b"?
Это чтобы в WHERE не писать Table1 и Table2, ну чтобы на клавиши меньше жать.

Цитата:
А можно ли в VFP запросом изменить все значения одного поля (или его часть, фрагмент) на другое значение?
См. UPDATE - SQL




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Hi, Andrey74!

Цитата:
для чего используются во втором запросе псевдонимы (не могу подобрать более точного слова
Это и есть весьма точное слово - в хелпе это называется Alias, что ближе всего переводится как "псевдоним".
А используется В ДАННОМ случае потому, что таблица Table1 используется 2 раза - обе эти "якобы копии" нужно отличать друг от друга. В принципе по сути эти псевдонимы похожи на USE ... AGAIN ALIAS ... - т.е. чтоб открыть 2 раза и работать "независимо". Хотя собственно с USE они не пересекаются - т.е. только внутри SELECT действуют.




------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
Andrey74
Автор

Сообщений: 33
Дата регистрации: 10.02.2005
AleksM, Igor

А как научиться писать запросы, подобные тем, которые привел AleksM. В справке по SELECT SQL все примеры простые. Подскажите, где можно увидеть примеры таких "красивых" и функциональных запросов.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
Перминов Игорь

Сообщений: 1591
Откуда: Красная Орловка
Дата регистрации: 16.09.2001
Одна из известнейших книг:
Введение в SQL. Автор: Мартин Грабер
У меня издание 1996 г. Но может и перездавалось.




------------------
Без коментариев..
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
1. Книжки (одну из них привел Игорь Перминов)
2. Help, примеры конструкций использованных в твоих запросах там есть
3. Форум Foxclubа, сначала в Поиске пошукать, у а если не выходит каменный цветок, то у товарищей спросить.




------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: Прошу помощи в 2-х запросах
Combat

Сообщений: 816
Откуда: Клайпеда
Дата регистрации: 26.10.2000
Здесь она в электронном виде :

Понимание SQL
sql.ru




------------------
Ratings: 0 negative/0 positive


Извините, но у вас нет прав для того, чтобы оставлять сообщения в этом форуме.

On-line: 12 (Гостей: 12)

© 2000-2024 Fox Club 
Яндекс.Метрика