2013-12-11 3 views
3

У меня есть таблица, где у меня есть действия и сообщения в виде столбцов, которые я хочу подсчитывать для конкретных действий в конкретном времени и времени, которое я мог суммировать для каждого действия, но не рассчитывал на конкретное действие.using sum, count на том же столбце в mysql

SELECT DATE(datetime),carpark_name, 
Sum(CASE action when '2' then 1 else 0 end) as AcceptedIMG, 
Sum(CASE action when '3' then 1 else 0 end) as RejectedIMG, 
Sum(CASE action when '4' then 1 else 0 end) as ChangeIMG, 
sum(CASE action when '23' then 1 else 0 end) as AcceptedViolation, 
sum(CASE action when '24' then 1 else 0 end) as RejectedViolation, 
sum(CASE action when '25' then 1 else 0 end) as SkippedViolation, 
FROM customer_1.audit_trail inner join customer_1.carparks on 
customer_1.audit_trail.location_id = customer_1.carparks.id 
where DATE(datetime)> '2013-12-01'and DATE(datetime)< '2013-12-03' and location_id = '146' 

Но это то, что мне нужно добавлять это рассчитывать (AcceptedIMG, RejectedIMG, ChangeIMG,) или (количество (действие (2,3,4) в качестве обзора. Я не могу это сделать.

+0

Это SUM is do в COUNT. Для получения правильных результатов вам понадобится GROUP BY DATE (datetime), carpark_name. –

+0

Я хочу добавить эти действия (2,3,4) в качестве обзора (например, как действие (2 + 3 + 4 = XX) как обзор – preethi

+0

Не понимаю, что вы пытаетесь сделать. Не могли бы вы добавить ожидаемый результат и более подробную информацию о том, что вы ищете? –

ответ

1

чтобы получить SUM действия 2,3 и 4, а РАССМОТРЕНИЯ колонки и 23,24,25, как CONTRAVENTIO вы могли бы сделать:.

SELECT DATE(datetime), 
     carpark_name, 
     Sum(CASE action when '2' then 1 else 0 end) as AcceptedIMG, 
     Sum(CASE action when '3' then 1 else 0 end) as RejectedIMG, 
     Sum(CASE action when '4' then 1 else 0 end) as ChangeIMG, 
     SUM(CASE WHEN action IN ('2','3','4') then 1 else 0 end) as REVIEW 
     sum(CASE action when '23' then 1 else 0 end) as AcceptedViolation, 
     sum(CASE action when '24' then 1 else 0 end) as RejectedViolation, 
     sum(CASE action when '25' then 1 else 0 end) as SkippedViolation, 
     SUM(CASE WHEN action IN ('23','24','25') then 1 else 0 end) as CONTRAVENTION 
FROM customer_1.audit_trail 
INNER join customer_1.carparks 
    ON customer_1.audit_trail.location_id = customer_1.carparks.id 
WHERE DATE(datetime) > '2013-12-01' 
    AND DATE(datetime) < '2013-12-03' 
    AND location_id = '146' 
GROUP BY DATE(datetime),carpark_name 

Я просто добавил два столбца в запросе Если вы не нужны отдельные, вы можете их удалить.

+0

Perfecto ... Filipe ....... .... ты блестящий .... – preethi

Смежные вопросы