Есть ли способ упростить запрос ниже? Я получил то, что хотел, но хочу узнать, как добиться результата, используя более короткий запрос. Что касается результата, могу ли я заменить значение NULL на 0?Упрощение запроса MYSQL
SELECT ad.Staff, ad.TYear, ad.TWeek, b.TMonth FROM (SELECT a.Staff, a.TYear, d.TWeek FROM (SELECT t2.creatorfullname AS Staff, count(distinct(t1.ticketmaskid)) AS TYear FROM swtickets t1 JOIN swticketauditlogs t2 ON t1.ticketid = t2.ticketid WHERE (YEAR(from_unixtime(t2.dateline)) = YEAR(CURRENT_TIMESTAMP) AND FIND_IN_SET (t2.creatorfullname,'Andy Murray,Rafael Nadal,Maria Sharapova') > 0 AND t2.actionmsg LIKE '%Ticket status changed from: % to: Closed%') AND totalreplies > 0 GROUP BY t2.creatorfullname) AS a LEFT OUTER JOIN (SELECT t2.creatorfullname AS Staff, count(distinct(t1.ticketmaskid)) AS TWeek FROM swtickets t1 JOIN swticketauditlogs t2 ON t1.ticketid = t2.ticketid WHERE (WEEK(from_unixtime(t2.dateline)) = WEEK(CURRENT_TIMESTAMP) AND FIND_IN_SET (t2.creatorfullname,'Andy Murray,Rafael Nadal,Maria Sharapova') > 0 AND t2.actionmsg LIKE '%Ticket status changed from: % to: Closed%') AND totalreplies > 0 GROUP BY t2.creatorfullname) AS d ON (a.Staff = d.Staff)) AS ad LEFT OUTER JOIN (SELECT t2.creatorfullname AS Staff, count(distinct(t1.ticketmaskid)) AS TMonth FROM swtickets t1 JOIN swticketauditlogs t2 ON t1.ticketid = t2.ticketid WHERE (MONTH(from_unixtime(t2.dateline)) = MONTH(CURRENT_TIMESTAMP) AND FIND_IN_SET (t2.creatorfullname,'Andy Murray,Rafael Nadal,Maria Sharapova') > 0 AND t2.actionmsg LIKE '%Ticket status changed from: % to: Closed%') AND totalreplies > 0 GROUP BY t2.creatorfullname) AS b ON (ad.Staff = b.Staff);
+----------------+-------+-------+--------+ | Staff | TYear | TWeek | TMonth | +----------------+-------+-------+--------+ | Andy Murray | 337 | 37 | 142 | | Rafael Nadal | 49 | NULL | 13 | | Maria Sharapova| 49 | 1 | 4 | +----------------+-------+-------+--------+
Удаленный тег sql-server, потому что вопрос явно о MySQL. –
, пожалуйста, предоставьте некоторые примерные данные с ожидаемым выходом –
. Здесь мы снова ждем @Gordon – Hackerman