Получение данных из SQL

0

У меня есть таблица заказов в моей БД (MySql), и там я хочу получить 4 поля.

  1. продавец
  2. клиент
  3. isert_date
  4. qtd_order

Но я просто хочу последний заказ, который сделал каждый клиент, поэтому я использовал этот SQL-запрос

SELECT 
    salesman, 
    client, 
    insert_date, 
    qtd_order 
FROM 
    'orders' 
WHERE 
    salesman = 'daniel.costa' 
GROUP BY 
    client 
ORDER BY 
    insert_date

Но это дает мне первый порядок, а не последний.

Не могли бы вы мне помочь.

  • 0
    Попробуйте добавить DESC после ORDER BY insert_date
  • 0
    Используйте правильную GROUP BY . Ваш запрос даже не имеет смысла.
Показать ещё 1 комментарий
Теги:
mysqli

1 ответ

1

Вам нужно ORDER BY DESC чтобы начать с самого последнего... И если вам нужно только 1, вы можете LIMIT 1 - нет необходимости в GROUP BY

SELECT salesman, client, insert_date, qtd_order FROM 
orders WHERE salesman = 'daniel.costa' ORDER BY insert_date DESC LIMIT 1 
  • 0
    Да, это приносит мне все заказы всех клиентов из «Даниеля», но я просто хочу последний из каждого клиента «Даниеля», поэтому я использовал «GROUP BY»
  • 0
    Значит ли это, что поставленный мною запрос не сработал? Если я вас правильно понимаю .. Этот запрос по-прежнему самый эффективный способ сделать это. Что делает: 1) Получает все заказы от продаж, где продавец = Даниель. ТОГДА заказывает все эти продажи по дате, начиная с «последней» и опускаясь до самой старой = DESC . Затем он "выбирает" первый результат и отбрасывает остальные из них с помощью LIMIT 1 .

Ещё вопросы

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