2013-10-15 3 views
0

J'essaie de sélectionner la dernière commande de tous les clients achetés, le but réel est d'ajouter une plage spécifique, par exemple 3 derniers mois, et de considérer la dernière commande de tout client sur ces 3 derniers mois, mais sans ordre plus tôt que ces 3 mois, jusqu'à présent, j'ai ceci:Requête Mysql, sélectionnez la dernière commande

SELECT zen_orders.orders_id, zen_customers.customers_id, 
    zen_orders.date_purchased, zen_orders.orders_status 
FROM zen_orders 
INNER JOIN zen_customers 
ON zen_orders.customers_id = zen_customers.customers_id 
    AND zen_orders.orders_status = '3' 
ORDER BY zen_customers.customers_id 

Je suis très nouveau à MySQL, ce droit me retourne maintenant toutes les commandes de tous les clients, quand un client en plus de un ordre il répète quelques rangées avec l'ID différent de commande mais le même id de client, mais maintenant comment isoler juste la dernière commande de tous les clients avec des ordres de sorte que je puisse l'adapter dans une gamme?

Répondre

0
select o.orders_id,o.customers_id, 
    o.date_purchased, o.orders_status from 
(
    select max(o.orders_id) maxOrder,o.customer_id 
    FROM zen_orders o 
    where o.orders_status = '3' 
    group by o.customers_id 
) t 
inner join zen_orders o on o.orders_id = t.maxOrder 
+0

Salut, c'est à avancé pour moi, je ne comprends pas comment faire les changements nécessaires sur ce projet afin que je puisse exécuter la requête: \ – Joricam

+0

Connaissez-vous le groupe par article? – Jonysuise

+0

très peu mais je comprends ce que vous avez fait là, je recherche des exemples de groupe en ce moment – Joricam

0

Afficher les informations client et les informations de commande de plus de 30 jours et d'au plus 60 jours.

SELECT C.customers_id, C.customers_firstname, C.customers_lastname, 
    O.date_purchased, O.orders_id, O.order_total, OS.orders_status_name 
     FROM orders O 
     LEFT join customers C on C.customers_id = O.customers_id 
     LEFT join orders_status OS on OS.orders_status_id=O.orders_status 
     WHERE 
      O.date_purchased BETWEEN DATE_SUB(NOW(), INTERVAL 2 MONTH) AND DATE_SUB(NOW(), INTERVAL 1 MONTH) 
GROUP BY C.customers_id 
Questions connexes