сопоставление имен с SSN в столбчатой ​​таблице - PullRequest
0 голосов
/ 18 сентября 2019

заранее благодарю за любой совет, который вы можете получить.

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

Таблица ("census_data"), к которой я обращаюсь, имеет следующие типы значений (всего 41 строка):

plan_id ssn_key        field    value
1       111111111      DOB      1732-02-22
1       111111111      DOR      1830-11-02
1       111111111      FNAME    GEORGE
1       111111111      LNAME    WASHINGTON
1       863283322      DOR      2020-03-22

Какк вашему сведению, в некоторых случаях у нас могут быть только чьи-либо SSN и DOB, но не их FNAME, LNAME, DOR (дата выхода на пенсию) и т. д.

Сейчас мы работаем с фиктивными данными и пытаемся получитьЗапросы на месте, когда мы начинаем работать с крупномасштабным набором данных.

Мы знаем, что в некоторых случаях в реальном наборе данных будут нелогичные данные, такие как Дата выхода на пенсию («DOR»)), что произойдет в будущем (при условии, что для наших правил значение 'DOR' должно иметь место в прошлом, чтобы оно было действительным).

Мы написали несколько запросов, которые дали нам результаты, которыемы ищем, такие как:

1) Дайте нам дни рождения всех людей с FNAME = 'GEORGE' и LNAME = 'WASHINGTON'

select [value] from [testdb3].[dbo].[census_data]
where ssn_key in (select ssn_key from census_data where field='LNAME' 
and value='WASHINGTON' and ssn_key in
(select ssn_key from census_data where field='FNAME' 
and [value]='GEORGE')) AND field='DOB' 

2) Дайте нам все SSN людей с датой выхода на пенсию после сегодняшнего дня

select [plan_id], [ssn_key], [field], [value] 
from [testdb3].[dbo].[census_data] as 
cd where cd.field = 'DOR'and value > GETDATE()

Напоминаем, что значения SSN находятся во 2-м столбце нашей таблицы, тогда как значения DOB, FNAME, DOR, LNAME и т. Д. Находятся в 4-м столбце нашей таблицы.

И вот где мы в тупике.Мы пытаемся написать запрос, который дает нам имя любого человека с датой выхода на пенсию больше, чем сегодня.Мы потратили несколько часов, пытаясь придумать что-то, что работает, и до сих пор были пустыми.Если у кого-то есть мысли по поводу того, каким будет код, пожалуйста, дайте мне знать, я был бы очень признателен.Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...