我有两张桌子。 job_table。
job_id job_type job_type User job_time job_name
1 1 Day User1 2015-04-23 23:20:10 Job1
2 2 Night User2 2015-04-23 13:20:10 Job2
3 3 Day & Night. User3 2015-04-22 23:10:10 Job3
4 3 Day & Night. User3 2015-04-20 13:40:10 Job4
5 1 Day User4 2015-04-26 03:20:10 Job5
和task_entry表。
task_entry_id job_id task_option_type emp_id completed_task_count status
1 1 Day 101 10 1
2 1 Day 102 0 0
3 1 Day 103 5 1
4 2 Night 101 20 1
5 3 Day 101 4 1
5 3 Night 101 0 0
6 3 Day 102 10 1
7 3 Night 102 5 1
如果job_table的job_type为3,那么task_entry表中将有2个条目用于Day,一个用于Night。 否则只有一个条目。
即如果job_type为3,则count应为count / 2。 (白天&安培;晚)。 其他计数应该是正常计数。
我想根据job_id获取状态。如果job_id的所有task_entry为1,则状态应为“COMPLETE”,否则为“PENDING” 和total completed_task_count。
job_id task_entry_count status completed_task_count
1 3 PENDING 15
2 1 COMPLETE 20
3 2 PENDING 19
我怎么能得到它。
答案 0 :(得分:0)
尝试此查询
select job_id,count(task_entry_count),case when a.job_id is null then 'Compeletd' else 'pending'end as status,sum(completed_task_count)
from task_table
join (select job_id from task_table where status=0) a a.job_id =task_table.job_id
group by job_id