I have a table for employee data and another one for his documents. If the document type is '1' so its number should be with alias 'Iqama', else if '2' it should be with alias 'Passport', else if '3' it should be as 'Drivinglicences', and so on.
I found a solution here
And this is my query:
SELECT emp_dta.emp_name,
(CASE WHEN emp_doc.doc_id_id = 1 THEN emp_doc.doc_no END) Iqama,
(CASE WHEN emp_doc.doc_id_id = 2 THEN emp_doc.doc_no END) Passport,
(CASE WHEN emp_doc.doc_id_id = 3 THEN emp_doc.doc_no END) DrivingLicence,
(CASE WHEN emp_doc.doc_id_id > 3 THEN emp_doc.doc_no END) OtheDocument
FROM emp_dta
INNER JOIN emp_doc ON emp_dta.emp_id = emp_doc.doc_emp_id
GROUP BY emp_dta.emp_id, emp_dta.emp_name, emp_doc.doc_id_id, emp_doc.doc_no
ORDER BY emp_dta.emp_name
But the result I get is like this:
emp_name Iqama Passport DrivingLicence OtheDocument
Employee1 2852436985 NULL NULL NULL
Employee1 NULL EC6331777 NULL NULL
Employee1 NULL NULL 5589492385 NULL
Employee1 NULL NULL NULL 366791111
Employee2 2315492339 NULL NULL NULL
Employee2 NULL EC6331841 NULL NULL
Employee2 NULL NULL 2315492385 NULL
Employee2 NULL NULL NULL 906792486
But my requirement is to get a result like this:
emp_name Iqama Passport DrivingLicence OtheDocument
Employee1 2852436985 EC6331777 5589492385 366791111
Employee2 2315492339 EC6331841 2315492385 906792486
How can I achieve this?