I have two tables with the following structures:
CREATE TABLE USERS
(
USERID VARCHAR2,
USERNAME VARCHAR2
);
CREATE TABLE CONFIRMATIONS
(
PERSONELID NUMBER,
ACCOUNTING VARCHAR2,
FINANCE VARCHAR2,
HR VARCHAR2
);
ACCOUNTING,FINANCE,HR columns of the the CONFIRMATIONS table correspond to the USERID column in the USERS table. I need a query that will put USERNAME corresponding the USERID if in any of the ACCOUNTING,FINANCE,HR columns have a value in it. So suppose we have the following data in the tables:
USERID|USERNAME PERSONELID | ACCOUNTING| FINANCE | HR
--------------- ----------------------------------------
1 Jack 113 2 1 NULL
2 Rony 120 3 NULL 2
3 Michel
I need something looking like this:
PERSONELID | ACCOUNTING | FINANCE | HR
----------------------------------------
113 Rony Jack NULL
120 Michel NULL Rony
Best Answer
You need to use multiple self joins to get that information: