SQL код Oracle - не получить уникальные значения - PullRequest
0 голосов
/ 31 октября 2019

У меня есть приведенный ниже код, который я хочу предоставить мне уникальный список papf.person_number , а затем он должен дать мне дату создания Отчет о проверке безопасности где он существует (который, кажется, работает). Моя проблема в том, что он возвращает несколько строк (от 3 до 6) для каждого уникального papf.person_number . Я знаю, что может возникнуть много вопросов, когда вы не знаете базу данных, но надеюсь, что вы можете дать мне несколько советов о том, где я ошибаюсь с моими утверждениями AND (стандарт компании, похоже, использует условия, а не объединения).

SELECT papf.person_number
     , (ppnf.first_name||' '||ppnf.last_name)                  full_name
     , paam.assignment_type 
     ,(SELECT * FROM 
        (Select TO_CHAR(dor.creation_date, 'DD/MM/YYYY')
        From    hr_documents_of_record                         dor
        WHERE   dor_type.document_type = 'Security Clearance Report'
        AND     papf.person_id                      = dor.person_id
        AND     dor_type.document_type_id           = dor.document_type_id
        Order BY dor.creation_date DESC
        ) 
        WHERE ROWNUM=1)                                        "Security Clearance Report"          
  FROM   per_all_people_f                       papf
        ,per_person_names_f                     ppnf 
        ,hr_documents_of_record                 dor 
        ,hr_document_types_vl                   dor_type 
        ,per_all_assignments_m                  paam 

WHERE   papf.person_id = ppnf.person_id 
    AND ppnf.person_id = dor.person_id 
    AND dor.person_id = paam.person_id
    AND SYSDATE BETWEEN papf.effective_start_date AND papf.effective_end_date
    AND SYSDATE BETWEEN ppnf.effective_start_date AND ppnf.effective_end_date
    AND SYSDATE BETWEEN paam.effective_start_date AND paam.effective_end_date
    AND paam.effective_latest_change = 'Y'
    AND paam.primary_flag = 'Y'
    AND ppnf.name_type                      = 'GLOBAL'
    AND paam.assignment_status_type         = 'ACTIVE'
    AND paam.assignment_type                IN('E','C','N','P')
    AND dor_type.document_type_id = dor.document_type_id
Order by full_name 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...