У меня есть таблица списка, которая в основном содержит одно и то же поле в каждой части.
- 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?
Expected Output (Total from 3 tables above):
Текущий код:
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.
Как мне поступить, если я хочу, чтобы вывод соответствовал моему ожиданию?
Спасибо...
Такая проблема является признаком плохой конструкции.
Какие данные вы хотите, я предоставлю @RadimBača
Просто опубликуйте примерную таблицу (с данными) и ожидаемый результат, чтобы мы могли четко понять, что вы делаете.
@RadimBača Я уже добавил образцы данных для p_xl_cj, у меня все еще есть типы p_xl_jabo1, p_xl_jabo2. но он содержит то же самое с p_xl_cj. Как и мое ожидание выше, я хочу запросить общее количество
У вас есть три стола, верно? Какая таблица p_xl_cj_m_site_data в вашем коде? Вы говорите: «Мой текущий код — это просто счетчик билетов для p_xl_cj», что такое p_xl_cj? В вашем вопросе нет ясности.
это просто способ упростить написание имени человека, у меня есть p_xl_cj_m_site_data, p_xl_jabo1_m_site_data, p_xl_jabo2_m_site_data. я сказал p_xl_cj только для того, чтобы вырезать _m_site_data. Но все в порядке, извините, что сбиваю вас с толку @RadimBača






SELECT (
SELECT COUNT(*)
FROM <table>
) AS count1,
(
SELECT COUNT(*)
FROM <table>
) AS count2
Не могли бы вы добавить к этому дополнительное объяснение, кроме кода, чтобы помочь ОП понять, почему ваш ответ будет работать.
Позвольте нам помочь вам, разместите образцы данных и ожидаемый результат для этих данных.