Home » SQL & PL/SQL » SQL & PL/SQL » joining
joining [message #9167] Fri, 24 October 2003 04:33 Go to next message
jseven
Messages: 28
Registered: October 2003
Junior Member
Hi all,
I am having a tables like reftable(primary data),sourcetable(secondary data).
The data is as following..
REFTABLE
-------
RNO RNAME RCATNO
1 PENS 10
2 PADS 20
3 BOOKS 30
4 PENCILS 40
6 RUBBERS 60

SOURCETABLE
-----------
SNO SNAME SCATNO

1 RAM 10
2 SHIRTS 21
3 MOUSE 30
5 TOYS 50
6 RUBBERS 60

output should be
1 PENS 10(RNO,SNO and RCATNO,SCATNO matched
so primary table data)
2 SHIRTS 21(RNO,SNO matched but RCATNO,SCATNO not
matched. So, secondary table data).
3 BOOKS 30(RNO,SNO and RCATNO,SCATNO matched. So
Primary table data)
4th record is not there in secondary table,so that should not be displayed.
5 TOYS 50 (must be from secondary table data
though it is not existing in primary
table)
6 RUBBERS 60.

Can anybody help me to solve this problem?

Thanks in advance.
ganesh
Re: joining [message #9171 is a reply to message #9167] Fri, 24 October 2003 08:01 Go to previous message
Art Metzer
Messages: 2480
Registered: December 2002
Senior Member
SQL> CREATE TABLE reftable (rno NUMBER, rname VARCHAR2(8), rcatno NUMBER);
  
Table created.
  
SQL> INSERT INTO reftable VALUES (1,'PENS',10);
SQL> INSERT INTO reftable VALUES (2,'PADS',20);
SQL> INSERT INTO reftable VALUES (3,'BOOKS',30);
SQL> INSERT INTO reftable VALUES (4,'PENCILS',40);
SQL> INSERT INTO reftable VALUES (6,'RUBBERS',60);
SQL> CREATE TABLE sourcetable (sno NUMBER, sname VARCHAR2(8), scatno NUMBER);
  
Table created.
  
SQL> INSERT INTO sourcetable VALUES (1,'RAM',10);
SQL> INSERT INTO sourcetable VALUES (2,'SHIRTS',21);
SQL> INSERT INTO sourcetable VALUES (3,'MOUSE',30);
SQL> INSERT INTO sourcetable VALUES (5,'TOYS',50);
SQL> INSERT INTO sourcetable VALUES (6,'RUBBERS',60);
SQL> COMMIT;
  
Commit complete.
  
SQL> SELECT s.sno
  2  ,      DECODE(NVL(r.rno,s.sno)
  3         ,      s.sno
  4         ,      DECODE(r.rcatno
  5                ,      s.scatno, r.rname
  6                ,      s.sname)) name
  7  ,      s.scatno              
  8  FROM   reftable     r
  9  ,      sourcetable  s
 10  WHERE  s.sno = r.rno (+)
 11  /
  
       SNO NAME         SCATNO
---------- -------- ----------
         1 PENS             10
         2 SHIRTS           21
         3 BOOKS            30
         5 TOYS             50
         6 RUBBERS          60
  
SQL> 
HTH,

A.
Previous Topic: save results in a file
Next Topic: ORA-12801: error signaled in parallel query server P029
Goto Forum:
  


Current Time: Tue Apr 23 05:08:20 CDT 2024