根据其他表列值mysql

时间:2015-07-07 17:28:52

标签: mysql status

我有两张桌子。 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

我怎么能得到它。

1 个答案:

答案 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