Как выбрать МАКСИМАЛЬНУЮ дату из левого объединения нескольких таблиц

0

У меня есть таблица счетов, таблица credit_memo и таблица платежей. У меня возникли проблемы с возвратом максимальной даты с даты выставления счета, даты выпуска платежа или даты выпуска кредитного авизо.

SELECT
  T1.b2b_id,
  MAX(T1.due_date) | coalesce(T3.issue_date, '1000-01-01') | 
    coalesce(T4.issue_date, '10001-01-01') AS endDate
FROM t_invoice AS T1
   LEFT JOIN t_linked_transaction AS T2 ON T2.invoice_uid = T1.uid
   LEFT JOIN t_payment AS T3 ON T3.uid = T2.payment_uid
   LEFT JOIN t_credit_memo AS T4 ON T4.uid = t2.credit_memo_uid

Запрос MAX возвращает 20150301009885.

Правильная дата 2015-03-01 00:00:00, если я завершаю MAX-запрос с помощью DATE (MAX (...)), он возвращает NULL

Спасибо за помощь

Теги:

1 ответ

1
Лучший ответ

Вам нужно отправить Char в соответствии с ошибкой MySQL, указанной в ссылке здесь.

MySQL Bug MAX (datetime)

SELECT
  T1.b2b_id,
  MAX (CAST(T1.due_date) AS CHAR) | coalesce(T3.issue_date, '1000-01-01') | 
    coalesce(T4.issue_date, '10001-01-01') AS endDate
FROM t_invoice AS T1
   LEFT JOIN t_linked_transaction AS T2 ON T2.invoice_uid = T1.uid
   LEFT JOIN t_payment AS T3 ON T3.uid = T2.payment_uid
   LEFT JOIN t_credit_memo AS T4 ON T4.uid = t2.credit_memo_uid

Ещё вопросы

Сообщество Overcoder
Наверх
Меню