SQL: получить последний платеж от всех клиентов?

Вопрос:im, используя Mysql 5.1 и учитывая табличные платежи с помощью столбцов customerid, paymentdate, мне нужен последний платеж всех клиентов. поэтому таблица с записями row, customerid, paymentdate 1 5 2011-03-01 2 5 2011-04-01 3 6 2011-01-01 4 7 2011-01-01 5 7 2011-02-01 должен возвращать строки 2,3,5 запрос select max(paymentdate),customerid from payments where customerid=5; который я пытался

Вопрос:

im, используя Mysql 5.1 и учитывая табличные платежи с помощью столбцов customerid, paymentdate, мне нужен последний платеж всех клиентов.
поэтому таблица с записями

row, customerid, paymentdate 1 5 2011-03-01 2 5 2011-04-01 3 6 2011-01-01 4 7 2011-01-01 5 7 2011-02-01

должен возвращать строки 2,3,5
запрос

select max(paymentdate),customerid from payments where customerid=5;

который я пытался проникнуть в какой-то клиент WHERE (…), но не повезло, поскольку он возвращает 2 столбца не только 1

спасибо

в конце концов ответы вдохновили меня найти соответствующую информацию и решить проблему с помощью
следующий запрос (как описано в комментарии к статье)

select * from (select * from payments order by paymentdate desc) as p group by customerid;

та же проблема из форума mysql
решения из связанной статьи mysql

Ответ №1

Вы должны group by customerid.

select max(paymentdate),customerid from payments group by customerid; Ответ №2

Другой подход:

Select paymentdate,customerid from payments group by customerid order by paymentdate DESC;

Или даже:

Select distinct(customerid),paymentdate from payments order by paymentdate DESC;

Добавление DESC к порядку, заставляя сначала возвращать самые последние даты.

Оцените статью
Добавить комментарий