第一种写法
select count(IF(t2.work_order_status=102 or t2.work_order_status=5,1,null)) as totalComWorkOrderNum, count(IF(t2.work_order_status=9,1,null)) as toBeTakingWorkOrderNum, count(IF(t2.work_order_status=10,1,null)) as toBeSignedWorkOrderNum, count(IF(t2.work_order_status=101,1,null)) as toBeHxWorkOrderNum, count(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') and t2.work_order_status=9,1,null)) as todayWorkOrderNum, count(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY) and t2.work_order_status=9,1,null)) as tomorrowWorkOrderNum,0 as toBeAppointedWorkOrderNumfrom p_user_dispatch_make_info t1INNER JOIN p_user_service_work_order_info t2ON t1.work_order_id=t2.idwhere t1.is_deleted=0and t1.is_enable=1and t2.is_deleted=0 and t2.is_enable=1
第二种写法
select count(IF(t2.work_order_status=102 or t2.work_order_status=5,true,null)) as totalComWorkOrderNum, count(IF(t2.work_order_status=9,true,null)) as toBeTakingWorkOrderNum, count(IF(t2.work_order_status=10,true,null)) as toBeSignedWorkOrderNum, count(IF(t2.work_order_status=101,true,null)) as toBeHxWorkOrderNum, count(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') and t2.work_order_status=9,true,null)) as todayWorkOrderNum, count(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY) and t2.work_order_status=9,true,null)) as tomorrowWorkOrderNum,0 as toBeAppointedWorkOrderNumfrom p_user_dispatch_make_info t1INNER JOIN p_user_service_work_order_info t2ON t1.work_order_id=t2.idwhere t1.is_deleted=0and t1.is_enable=1and t2.is_deleted=0 and t2.is_enable=1
第三种写法
select sum(IF(t2.work_order_status=102 or t2.work_order_status=5,1,0)) as totalComWorkOrderNum, sum(IF(t2.work_order_status=9,1,0)) as toBeTakingWorkOrderNum, sum(IF(t2.work_order_status=10,1,0)) as toBeSignedWorkOrderNum, sum(IF(t2.work_order_status=101,1,0)) as toBeHxWorkOrderNum, sum(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') and t2.work_order_status=9,1,0)) as todayWorkOrderNum, sum(if(STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY) and t2.work_order_status=9,1,0)) as tomorrowWorkOrderNum,0 as toBeAppointedWorkOrderNumfrom p_user_dispatch_make_info t1INNER JOIN p_user_service_work_order_info t2ON t1.work_order_id=t2.idwhere t1.is_deleted=0and t1.is_enable=1and t2.is_deleted=0 and t2.is_enable=1
第四种写法
select count(CASE WHEN t2.work_order_status=102 or t2.work_order_status=5 THEN 1 ELSE null END) as totalComWorkOrderNum, count(CASE WHEN t2.work_order_status=9 THEN 1 else null END) as toBeTakingWorkOrderNum, count(CASE WHEN t2.work_order_status=10 THEN 1 ELSE null END) as toBeSignedWorkOrderNum, count(CASE WHEN t2.work_order_status=101 THEN 1 ELSE NULL END) as toBeHxWorkOrderNum, count(CASE WHEN STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') and t2.work_order_status=9 THEN 1 ELSE null END) as todayWorkOrderNum, count(CASE WHEN STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY) and t2.work_order_status=9 THEN 1 ELSE NULL END) as tomorrowWorkOrderNum,0 as toBeAppointedWorkOrderNumfrom p_user_dispatch_make_info t1INNER JOIN p_user_service_work_order_info t2ON t1.work_order_id=t2.idwhere t1.is_deleted=0and t1.is_enable=1and t2.is_deleted=0 and t2.is_enable=1
第五种写法
select count(CASE WHEN t2.work_order_status=102 or t2.work_order_status=5 THEN true ELSE null END) as totalComWorkOrderNum, count(CASE WHEN t2.work_order_status=9 THEN true else null END) as toBeTakingWorkOrderNum, count(CASE WHEN t2.work_order_status=10 THEN true ELSE null END) as toBeSignedWorkOrderNum, count(CASE WHEN t2.work_order_status=101 THEN true ELSE NULL END) as toBeHxWorkOrderNum, count(CASE WHEN STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') and t2.work_order_status=9 THEN true ELSE null END) as todayWorkOrderNum, count(CASE WHEN STR_TO_DATE(t1.reservation_date,'%Y-%m-%d')=DATE_ADD(DATE_FORMAT(NOW(),'%Y-%m-%d'),INTERVAL 1 DAY) and t2.work_order_status=9 THEN true ELSE NULL END) as tomorrowWorkOrderNum,0 as toBeAppointedWorkOrderNumfrom p_user_dispatch_make_info t1INNER JOIN p_user_service_work_order_info t2ON t1.work_order_id=t2.idwhere t1.is_deleted=0and t1.is_enable=1and t2.is_deleted=0 and t2.is_enable=1