У меня есть таблица со списком, которая в основном содержит одно и то же поле в каждой части.
- p_xl_cj_ticket_m_site_data | - p_xl_cj_ticket | - p_xl_cj_ticket_last_row_ingroup
- p_xl_jabo1_ticket_m_site_data | - p_xl_jabo1_ticket | - p_xl_jabo1_ticket_last_row_ingroup
- p_xl_jabo2_ticket_m_site_data | - p_xl_jabo2_ticket | - p_xl_jabo2_ticket_last_row_ingroup
Что мне делать, если я хочу подсчитать все общее количество сайтов по ticket1, ticket2, ticket3?
Ожидаемый результат (всего из 3 таблиц выше):
Текущий код:
SELECT COUNT( * ) AS tot_sites,
IFNULL( COUNT(
CASE WHEN p_xl_cj_m_site_data.m_date_target = DATE( NOW( ) )
THEN 1 ELSE NULL END ) , 0 ) AS todays_target,
IFNULL( COUNT(
CASE WHEN (p_xl_cj_m_site_data.m_date_target = DATE( NOW( ) )
AND p_xl_cj_ticket.t_status =9 )
THEN 1 ELSE NULL END ) , 0) AS todays_achieve,
IFNULL( COUNT(
CASE WHEN p_xl_cj_ticket.t_status =9
THEN 1 ELSE NULL END ) , 0 ) AS tot_in
FROM p_xl_cj_m_site_data
LEFT JOIN p_xl_cj_ticket_last_row_ingroup
ON p_xl_cj_ticket_last_row_ingroup.t_m_id = p_xl_cj_m_site_data.m_id
AND p_xl_cj_ticket_last_row_ingroup.t_req_type = '04_int_finish_ack'
LEFT JOIN p_xl_cj_ticket
ON p_xl_cj_ticket.t_id = p_xl_cj_ticket_last_row_ingroup.t_id
WHERE p_xl_cj_m_site_data.m_status =1
Пример данных:
p_xl_cj_ticket_m_site_data p_xl_cj_ticket p_xl_cj_ticket_last_row_ingroup
------------------------------------------------------------------------------------
* m_date_target = 2019-02-13 * t_status = 9 * t_m_id = xxxxx123
* m_status = 1 * t_id = abc * t_id = abc
* m_id = xxxxx123 * t_req_type = 04_int_finish_ack
Мой текущий код - просто счетчик билетов для p_xl_cj.
Как мне поступить, если я хочу сделать вывод, как ожидалось?
Спасибо...