Я пытаюсь создать формулу выбора, в которой люди будут пропускать имя документа среди всех документов, а также другие случаи, показанные ниже. Мне не ясно, как искать во всех документах этого человека, среди всех остальных людей.
Я показываю пример таблицы данных:
**Person** table
PID ID_Number First Last
1 123 Joe Shmoe
2 234 Luke Skywalker
3 456 Yoda Guy
4 Yogi Gal
5 678x Mr Rogers
**Person_ID_Numbers** table
PID ID_Number Document_Name
1 123 Verification
1 222 License
1 333 Training
2 234 License
2 444 Something
2 555 Specialty
3 456 License
3 777 Something
3 888 Other
4 Verification
5 999 Other
Таблицы объединяются по PID. Мне нужно найти те, которые не имеют документа проверки среди всех Document_Names. Кроме того, я нахожу пустые идентификаторы в любой из таблиц, идентификаторы, которые не совпадают между таблицами для документа подтверждения, и идентификаторы, которые не имеют длину 3 цифры. Как мне проверить, не пропустили ли они Документ проверки со всем остальным?
Редактор формул выбора записей:
//id numbers not equal between main screen and id_number screen for Verification doc
(not({Person.ID_Number}={Person_ID_Numbers.ID_Number})
and
{Person_ID_Numbers.DocumentName}="Verification")
or
//blank id number
isnull({Person.ID_Number})
or({Person.ID_Number}="")
or(CStr({Person.ID_Number})="")
or
isnull({Person_ID_Numbers.ID_Number})
or({Person_ID_Numbers.ID_Number}="")
or(CStr({Person_ID_Numbers.ID_Number})="")
//field length is not 3 for id number
or
not((length({Person.ID_Number}))=3)
or
(
not((length({Person_ID_Numbers.ID_Number}))=3)
and
{Person_ID_Numbers.DocumentName}="Verification"
)
//it doesn't have an Verification document at all ??
or
(
not(({Person_ID_Numbers.DocumentName}="Verification") ???????IDK how to see if each person has Verification doc
)
Я читал sum на col, где id - это что-то , но они говорят о группах, и я не уверен, как делать группы, или использовать это в этом. Это то, что мне нужно сделать, и как мне сделать группу, но все же мои другие дела отображаются в отчете, которые не связаны?
Так что в приведенном выше отчете я ожидал бы PID 4, потому что у нее пустой id_number, PID 5, потому что у них 4 цифры для ID_Number, и PID 2,3,5, потому что в них отсутствует документ проверки.
Обновление:
Прямо сейчас я подумываю сделать вид sql, подобный следующему, и слева соединить его в кристалле с "или" из всех этих, чтобы добавить отсутствующие документы проверки в отчет.
use "db"
select
p.PIN
, p.Last
,p.first
,p.Middle
,pin.DocumentName
from
Person p
left join Person_ID_Numbers pi on pi.PIN=p.PIN
where NOT EXISTS(
select
p.PIN
, pi.DocumentName
where DocumentName like ('%Verification%')
)
Следуя этому примеру не имеет