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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2012, 12:50   #1
Котикова
Новичок
Джуниор
 
Регистрация: 17.08.2012
Сообщений: 1
По умолчанию Сложный (для меня) SQL запрос

Я только начинаю, поэтому создать запрос с ТАКИМИ условиями никак не соображу как. Помогите пожалуйста. Задание в файле
Котикова вне форума Ответить с цитированием
Старый 17.08.2012, 14:11   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
Написать SQL-запрос, который вернет список объектов (id_object) где умер последний собственник более указанного количества месяцев и на момент смерти последнего собственника не было ни одного живого зарегистрированного (id_residence_type=1). При реализации следует учесть, что задание сформулировано так что должны корректно обрабатывается ситуация, когда человек умирает например 01.01.2005, а его выписывают 25.01.2005 (или забывают выписать).
я бы начал с такого SQL (структуру таблиц не смотрел)

Код:
select id_object

from ( -- объекты где умер последний собственник более указанного количества месяцев
       select id_object, max(dead) as lastdead
       from objectslinks --список собствеников
       --- inner join др. таблицы для опр. даты смерти (dead)
       inner join sobstv on  objectslinks.sobstv =sobstv.sobstv
       group by id_object
       having max(dead) < нужная дата 
    ) as deadobjects

where ( -- на момент смерти последнего собственника не было ни одного живого зарегистрированного 
        not exists ( -- список живых зарегистрированных по указанному объекту на заданную дату 
                     select * from reg_objects 
                     where id_reg =1 and reg_date<lastdead and unreg_date>lastdead --живые на указанную дату
                       and deadobjects.id_object =reg_objets.id_object --по указанному объекту
                    )
     )
  and 
        not exists ( --живые собственники
                       )
или точнее сначала написал (проверил) вложенные запросы
--список умерших собственников с указанием объекта собственности
--список живых зарегистрированных на объекте на указанную дату
--список живых собственников

и потом объединил как показано.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 17.08.2012 в 14:16.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сложный запрос SQL irina1410 БД в Delphi 4 03.07.2012 16:46
Сложный запрос на выборку SQL simka16 Помощь студентам 0 21.02.2011 18:43
Сложный запрос в SQL A-Lex-Is SQL, базы данных 1 10.08.2010 23:19
сложный sql запрос kate158 БД в Delphi 0 18.09.2008 11:38
Сложный SQL-запрос ole777 БД в Delphi 1 08.05.2007 20:56