Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

सभी उपयोगकर्ताओं को लौटाएं, यहां तक ​​कि वे भी जो मेरे मानदंडों के अनुरूप नहीं हैं

जैसा कि यहां कहीं और उल्लेख किया गया है, यदि आप एएनएसआई स्टाइल जॉइन का उपयोग करते हैं तो इस तरह की चीज करना बहुत आसान है।

फिर भी, यह थोड़ा मुश्किल है क्योंकि आप LEFT JOIN करना चाहते हैं INNER JOIN . में आपके लोगों की सूची HR_DOCUMENTS_OF_RECORD . के बीच और HR_DOCUMENT_TYPES_VL . अर्थात्, प्रत्येक व्यक्ति के लिए, आप रिकॉर्ड के दस्तावेज़ चाहते हैं जो "सुरक्षा निकासी रिपोर्ट" प्रकार के हों, यदि कोई मौजूद हों।

यहां बताया गया है कि आप यह कैसे करते हैं:

SELECT papf.person_id
     , (ppnf.first_name||' '||ppnf.last_name)                                    e_name
     , dor.document_name
     , dor_type.document_type
     , TO_CHAR(dor.creation_date, 'DD/MM/YYYY')                                  dor_issue_date
FROM per_all_people_f  papf
INNER JOIN per_person_names_f ppnf ON ppnf.person_id = papf.person_id
           AND ppnf.name_type                      = 'GLOBAL'
           AND SYSDATE BETWEEN ppnf.effective_start_date AND NVL(ppnf.effective_end_date,SYSDATE)
LEFT JOIN ( hr_documents_of_record dor 
INNER JOIN hr_document_types_vl dor_type ON dor_type.document_type_id = dor.document_type_id
           AND dor_type.document_type = 'Security Clearance Report'  ) ON dor.person_id = papf.person_id
WHERE SYSDATE BETWEEN papf.effective_start_date AND NVL(papf.effective_end_date,SYSDATE)
ORDER BY e_name DESC;

नोट करें INNER JOIN DOR . के बीच और DOR_TYPE कोष्ठक में है और LEFT JOIN हालत बाद . है कोष्ठक।

अगर आप भोलेपन से LEFT JOIN सुरक्षा मंजूरी रिपोर्ट के अलावा सब कुछ और किसी भी व्यक्ति के पास रिकॉर्ड के दस्तावेज हैं, आपको बहुत सारी पंक्तियाँ मिलेंगी।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं कैसे बता सकता हूं कि मेरे पास Oracle लेनदेन में अप्रतिबद्ध कार्य है या नहीं?

  2. डेटाबेस में एकाधिक तालिकाओं का लेखा परीक्षा इतिहास

  3. चेतावनी:ocifetch() [function.ocifetch]:ORA-24374:लाने या निष्पादित करने और लाने से पहले परिभाषित नहीं किया गया

  4. अन्य तालिका से सबक्वेरी का उपयोग करके बाधाओं को जोड़ना

  5. ऑरैकल पर हाइबरनेट अनुक्रम, @GeneratedValue(strategy =GenerationType.AUTO)