#mysql
Вопрос:
Всем привет, у меня есть простая функция группирования, в которой я объединяюсь в таблицу и возвращаю количество, основанное на статусе. Проблема, с которой я столкнулся, заключается в том, что я хотел бы считать «Ожидающие» и «Отправленные на утверждение» в одном статусе, таком как код.
то есть, если «Ожидание» имеет 2 записи, а «Отправлено на утверждение» имеет 3 записи, то значение группы by должно быть 5. «Отклонено» и «Одобрено» должны по-прежнему работать так же, как и раньше. «Сброс» был намеренно опущен.
`Select DISTINCT(UT.status),
(SELECT Count(UnitRateID)
FROM UnitRate UR join Telecom TC
on UR.UnitOwnerID = TC.UnitOwnerID
AND UR.WaterPeriodFrom = '".$MeterDateFrom."'
AND UR.WaterPeriodTo = '".$MeterDateTo."'
AND TC.TelPeriodFrom = '".$MeterDateFrom."'
AND TC.TelPeriodTo = '".$MeterDateTo."'
WHERE UR.status=UT.status
) as total
From UnitRate UT where status IN ('Pending','Sent For Approval','Approved','Rejected')
order by FIELD(status,'Pending','Sent For Approval','Rejected','Approved') ASC LIMIT 4`
Комментарии:
1. где вы группируетесь?
Ответ №1:
вы можете использовать суб sql — запрос со специальным условием, например
select (select count(*) from table where status in ('Pending', 'Sent for approval')) as countname from table where condition