2016-10-04 3 views
0

У меня есть таблица, которая имеет различные исторические данные о том, где определенные люди работали и жили за 50-летний период. Чтобы упростить, каждая запись имеет дату, person_id, address_id и логическую работу true или false, а второе логическое место жительства - true или false. Данные достаточно спорадические, что матчей мало. Человек мог бы жить на своем месте работы, хотя это может быть проигнорировано для целей этого вопроса.Поиск конкретных данных в течение 365 дней

Я хочу найти каждый экземпляр, если есть рабочий адрес и адрес проживания в течение одного года для человека. Конечно, человек мог бы сменить работу и места жительства на 50-летний период.

Резюме информации можно посмотреть по адресу: https://secure-shore-68966.herokuapp.com/connections.

Рельсы программа на https://bitbucket.org/MtnBiker/crores5/

Есть ли способ сделать это с помощью SQL/Active Record? Я могу видеть повторение каждой записи и поиск любых случаев с плюс или минус шесть месяцев каждой записи для этого человека. Но я надеюсь на путь SQL. Я хочу нарисовать линию на карте между каждой парой.

Таблица: CREATE TABLE public.years ( id integer NOT NULL DEFAULT nextval('years_id_seq'::regclass), year_date date, created_at timestamp without time zone NOT NULL, updated_at timestamp without time zone NOT NULL, resto boolean, resid boolean, source text, person_id integer, location_id integer, title character varying, notes text, resto_name character varying, ref_link character varying, ref_url character varying, snippet_file_name character varying, snippet_content_type character varying, snippet_file_size integer, snippet_updated_at timestamp without time zone, CONSTRAINT years_pkey PRIMARY KEY (id), CONSTRAINT fk_rails_8fc1813509 FOREIGN KEY (person_id) REFERENCES public.people (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION, CONSTRAINT fk_rails_e1624dbb3f FOREIGN KEY (location_id) REFERENCES public.locations (id) MATCH SIMPLE ON UPDATE NO ACTION ON DELETE NO ACTION ) Таким образом, для любого person_id записи, если resid является true есть restotrue в пределах плюс или минус шесть месяцев (year_date).

+0

Пробег в течение одного года является формой (CurrentDate) или определенной датой? – Zeina

ответ

0

От даты для изделия. Если бы я был итератором, я бы посмотрел дату этой строки, и если бы у этого человека были какие-то записи в течение шести месяцев. С добавлением оговорки, что если элемент оставался истинным, то + - шесть месяцев было истинным.

Смежные вопросы