меня две разные софтины для выгрузки информации из базы и при этом один и тот же запрос выдает разный результат (Воркбенч - результат корректный, а в PowerQuery - 0 строк).
В запросе присутствует фильтр по кириллице:
---------------------
WHERE
osys_logs.LOGTEXT like '%[в обработке] в [обработан]'
--------------------
и если это условие убрать, то запросы корректно обрабатываются в обоих софтинах. Но нужно чтобы запрос корректно обработался в PowerQuery.
Вероятно нужно указать COLLATE для условия с кириллицей.
Как это сделать?
----------------------
посмотрел таблицу, в ней для нужного столбца:
character_set_name: utf8mb4
Как бы невозможно обсуждать запрос без запроса если тебе нужно указать кодировку и колышен для условия Ну укажи это делается прямо запросе там Field collate такая-то Collection. Но я думаю связано Это не с этим
Вот текст запроса: USE nc; select distinct os_doc_payment.ID, d2.STATE, FROM_UNIXTIME(om_doc_operation.DUE_DATE, '%Y-%m-%d %H:%i:%s'), os_order.PAYMENT_CURR, os_order.TOTAL_COST_CURR, om_doc_operation.AMOUNT, om_depository.NAME, d1.NUMBER, FROM_UNIXTIME(d1.DATE_CREATE, '%Y-%m-%d %H:%i:%s'), d1.ID, d1.STATE, os_order.STOCK, om_doc_operation.IA_TYPE from os_doc_payment join odocument d1 on d1.Id=os_doc_payment.EORDER join odocument d2 on d2.Id=os_doc_payment.Id left join om_doc_operation on d2.PARENT=om_doc_operation.Id left join om_depository on om_doc_operation.DEPOSITORY=om_depository.id join os_order on d1.Id=os_order.Id left join osys_logs on (osys_logs.OBJECT_ID=os_doc_payment.ID and osys_logs.OBJECT_CLASS = 'SDocPayment') where om_doc_operation.IA_TYPE in ('SBERBANK QR','sber-qr') and osys_logs.TYPE = 'LOG' and osys_logs.LOGTEXT like '%[в обработке] в [обработан]' and om_doc_operation.DUE_DATE>=unix_timestamp(DATE(CURDATE()-INTERVAL 40 DAY)) and os_order.TYPE != ('DEALER');
Проблема уже отняла много времени, за решение отблагодарю. Как один и тот же запрос, выполненный в Воркбенч и PQ дает разный результат? Оба запроса выполняются на одном и том же ПК
Если добавить строку ----------------------- COLLATE utf8mb4_general_ci; --------------------- То запрос по прежнему корректно выполняется в Воркбенче, но PQ выдает ошибку: COLLATION 'utf8mb4_general_ci' is not valid for CHARACTER SET 'latin1'
Схема в каком коллейшене создана?
Я только вникаю в MySql, если для получения инфы нужно какой-то запрос выполнить - сообщите, выполню)
Для начала, скорее всего - это разные запросы
Запрос один и тот же, копирую-вставляю
Сравните show session variables и там и там
Так не может быть
Ты уверен, что это верно написанное условие ? osys_logs.LOGTEXT like '%[в обработке] в [обработан]' Что оно у тебя должно значить ?
условие верное, им я фильтрую заказы, по которым присутствовали логи оплаты (смены статуса на обработан)
Проблема в том, что выглядит как два статуса одновременно
Проговори словами что оно должно означать у тебя
Обсуждают сегодня