0

I would like to ask if it is possible to select again from a result set if a column contains a specific value?

For example, from the below query I want to select it as subquery and check if that subquery's first column contains both 2 and 3 result. Otherwise, no values should be return.

select e.evaluator_id, ROUND(avg(cast(e.rating_score as int))::numeric,1)::varchar, c.q_category_name 
from tms.t_evaluation e    
inner join tms.m_q_category c    
on e.nendo=c.nendo    
and e.q_category_id = c.q_category_id    
and c.delete_flg = '0'
inner join tms.m_q_subcategory qs
on e.q_category_id = qs.q_category_id
and e.q_subcategory_id = qs.q_subcategory_id
and c.nendo = qs.nendo
and qs.delete_flg = '0'
where e.nendo = '2018'
and e.empl_id = 'empl05'    
and e.delete_flg = '0'
and e.evaluator_id in ('2' , '3') 
group by e.empl_id, e.nendo, e.q_category_id, 
c.q_category_name, e.evaluator_id, e.history_no

Result contains both 2 and 3 in first column. Is this possible?

Son Truong
  • 13,661
  • 5
  • 32
  • 58
breshi
  • 25
  • 6

1 Answers1

0
select e.evaluator_id, ROUND(avg(cast(e.rating_score as int))::numeric,1)::varchar, c.q_category_name 
from tms.t_evaluation e    
inner join tms.m_q_category c    
on e.nendo=c.nendo    
and e.q_category_id = c.q_category_id    
and c.delete_flg = '0'
inner join tms.m_q_subcategory qs
on e.q_category_id = qs.q_category_id
and e.q_subcategory_id = qs.q_subcategory_id
and c.nendo = qs.nendo
and qs.delete_flg = '0'
where e.nendo = '2018'
and e.empl_id = 'empl05'    
and e.delete_flg = '0'
and e.evaluator_id in (select case when evaluator_id=2 or evaluator_id=3 then evaluator_id else null from t_evaluation order by evaluator_id asc) 
group by e.empl_id, e.nendo, e.q_category_id, 
c.q_category_name, e.evaluator_id, e.history_no