powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос из 2 таблиц по id и максимальной дате. Не знаю как
8 сообщений из 8, страница 1 из 1
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162381
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Леди и джентельмены!
Извините, что каждый день у меня по топику на форуме. Я уже писала ранее, что работаю учительницей. А программирую, потому что взялась подрабатывать в одной фирме, вот и осваиваю постепенно VFP 7, ориентируясь на свой институтский FPD.
Сегодня столкнулась с такой проблемой:
Таб1: id_cod (N), fio (c). Primary индекс на id_cod.
Таб2: id_cod (N), date_vid (D). Regular индекс на id_cod.
На каждый таб1.id_cod может приходится от 0 до n-ного количества записей в таб2.
Нужно сделать выборку всех таб1.fio, где в таб2 количество date_vid>0 и максимальная date_vid<DATE()-365.
Вопрос: можно ли сделать это одной строкой запроса? Если да, то напишите, пожалуйста, его синтаксис. Если нет, то как найти более рациональное решение?
Благодарю.
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162391
Sergey Sizov.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select fio, max(date_vid)
from tab1
inner join tab2 on tab1.id_cod = tab2.id_cod
where not empty(date_vid) and date_vid<DATE()-365 group by fio

Примерно так. Так как время уже сильно позденее то возможны очепятки :)
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162393
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
select tab1.fio from tab1 ;
 where exists (select  1  from tab2 ;
                where tab2.id_cod = tab1.id_cod ;
                  and tab2.date_vid < date()- 365 )
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162394
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, вместо DATE()-365 можно использовать gomonth(date(),-12) - не быстрее, зато учитывает високосные годы ;-)))
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162537
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, джентельмены, ни первый, ни второй запрос работают некорректно. В выборку уходят даже те записи, у которых date_vid месячной давности.
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162545
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://forum.foxclub.ru/read.php?f=32&i=60&t=11
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162589
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, проворонил, конечно же, что дата должна быть максимальная, а сравниваться - по условию "меньше".
Тогда где-то так.
Код: plaintext
1.
2.
3.
4.
select tab1.fio from tab1 ;
 where tab1.id_cod in (select tab2.id_cod from tab2 ;
                        where tab2.id_cod = tab1.id_cod ;
                        group by tab2.id_cod
                        having max(tab2.date_vid) < date()- 365 )
...
Рейтинг: 0 / 0
Запрос из 2 таблиц по id и максимальной дате. Не знаю как
    #33162734
Urri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так:
Код: plaintext
1.
2.
3.
4.
5.
select tab1.fio from tab1 ;
 where exists (select  1  from tab2 ;
                where tab2.id_cod = tab1.id_cod) ;
   and not exists (select  1  from tab2 ;
                    where tab2.id_cod = tab1.id_cod ;
                      and tab2.date_vid >= date()- 365 )
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Запрос из 2 таблиц по id и максимальной дате. Не знаю как
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]