Добавьте этот код после отправки сообщения и до получения сообщения с сервера
recyclerView.scrollToPosition(mChatList.size() - 1);
Ваш код может использовать небольшое переформатирование, чтобы улучшить читаемость. Вы, скорее всего, получите качественный ответ, если люди смогут быстро и легко усвоить ваш вопрос и ваш код. Кроме того, у вас были дополнительные открытые скобки в предложении WHERE для внешнего запроса.
При использовании подзапроса вы должны избегать использования тех же псевдонимов таблиц, что и внешний запрос. Используйте уникальные псевдонимы.
Проблема, с которой вы столкнулись, вызвана тем, что у вас есть подзапрос, производящий столбец VENDEUR X. Чтобы подзапрос работал, он должен возвращать только одну строку при выполнении. В вашем случае он возвращает несколько строк, которые выдают сообщение об ошибке.
Для устранения проблемы запустите подзапрос независимо и проверьте возвращаемые данные. Вы группируете по столбцу ET2.ET_LIBELLE, который имеет несколько значений. Исходя из того, что, я полагаю, вы пытаетесь сделать, вы должны добавить ET2.ET_LIBELLE в предложение WHERE. Смотрите мой пример ниже.
SELECT
[MAGASIN] = ET2.ET_LIBELLE,
[CA]= SUM(GL_MONTANTTTC),
[NBR TICKET] = COUNT(DISTINCT GL_NUMERO),
(
SELECT [NBR TICKET] = COUNT(DISTINCT GL_NUMERO)
FROM
GCLIGNEARTDIM
LEFT OUTER JOIN ETABLISS ETI ON GL_ETABLISSEMENT=ETI.ET_ETABLISSEMENT
LEFT OUTER JOIN COMMERCIAL GCLI ON GL_REPRESENTANT=GCLI.GCL_COMMERCIAL
WHERE
(
GL_DATEPIECE >= '20190228 00:00:00'
AND GL_DATEPIECE < '20190301 00:00:00'
AND (GCL3.GCL_LIBELLE='vendeur x')
)
AND GL_ETABLISSEMENT IN ('W01','W05','F10')
AND ETI.ET_LIBELLE = ET2.ET_LIBELLE
) AS 'VENDEUR X'
FROM
GCLIGNEARTDIM
LEFT OUTER JOIN ETABLISS ET2 ON GL_ETABLISSEMENT=ET2.ET_ETABLISSEMENT
LEFT OUTER JOIN COMMERCIAL GCL3 ON GL_REPRESENTANT=GCL3.GCL_COMMERCIAL
WHERE
GL_DATEPIECE >= '20190228 00:00:00'
AND GL_DATEPIECE < '20190301 00:00:00'
AND GL_ETABLISSEMENT IN ('W01','W05','F10')
GROUP BY
ET2.ET_LIBELLE
ORDER BY
ET2.ET_LIBELLE