Похоже, что Ваши полномочия на/tmp являются неправильными. Они действительно должны считаться/писаться/выполняться из всех с липким набором битов.
chmod 1777 /tmp
Липкий бит добавляет некоторые ограничения на то, как другие пользователи взаимодействуют с файлами, не созданными или находящимися в собственности их, таким образом, нет никакой причины волноваться.
При необходимости можно также создать отдельный каталог, принадлежавший и записываемый mysql пользователю, и указать что каталог в my.cnf, который будет использоваться вместо/tmp в масштабе всей системы.
Я предполагаю, что поле 'состояние' находится в таблице 'контракта'. Самая легкая вещь состоит в том, чтобы создать 3 отдельных запроса, что Вы - определенное отражение правильное число для каждого общего количества и избегаете соединений, где они не необходимы.
SELECT COUNT(DISTINCT consumerno) as TOTAL FROM consumer LEFT JOIN contract ON consumerno = cconsumer WHERE status='Active';
SELECT COUNT (DISTINCT cconsumer) as B FROM contract WHERE ccon LIKE '%B%' AND status='Active';
SELECT COUNT (DISTINCT cconsumer) as D FROM contract WHERE ccon LIKE '%D%' AND status='Active';
Можно изрубить соединение на поле заполнителя для помещения их всех в одну аккуратную строку при необходимости.