Need help with basic sql

Posted on 16th Feb 2014 by admin

Hi,

I am using oracle 10g, and having some small doubts related to sql , here goes the situation

I have a Transaction table , which contains records/transaction carried out by a employee under a Reason code on various dates, refer to below sample data

EMP_CODE REASON_CODE DATE

A001 B1 1st Jan 2009
A001 B1 3rd Jan 2009
A001 B1 6rd Jan 2009
A001 C2 9th Jan 2009

A002 D4 1st Jan 2009
A002 D4 3rd Jan 2009
A002 D5 6rd Jan 2009

A003 E6 6rd Jan 2009
A003 E6 7rd Jan 2009
Effectively i want to have final result as follows (i.e. some how hide A003 , refer to below for reason )

A001 B1
A001 C2
A002 D4
A002 D5
*So basically print Employee code and reason code only if employee has done transaction under more than 1 reason code, since employee code 'A003' carried out transaction ONLY under 1 UNIQUE Reason code , i dont want his record to be printed.*

the current query which i wrote is as follows :

select emp_cd, reas_cd
from employee_trans_table
where reas_cd ' '
group by emp_cd, reas_cd
order by emp_cd, reas_cd

but this prints results as

A001 B1
A001 C2
A002 D4
A002 D5
A003 E6

How do i avoid prnting A003/E6 since it had only 1 reason code attached to it..
I hope i am able to clearly state the doubt which i have, let me know if you require any further info/clarrification on this.

Other forums