Page 1 sur 1

Sélectionner les utilisateurs n'ayant pas commandé depuis 1 an

Posté : 30 oct. 2021, 16:27
par finipe_
Bonjour à tous, (pas moyen de remettre la main sur mes identifiants de connexion :roll:)

Je cherche actuellement à faire des stats sur une base assez importante de clients de de commandes.
Parmi ces requêtes, j'ai "N'a pas commandé".

Pour ce faire, j'envoie :

Code : Tout sélectionner

SELECT users . id FROM users LEFT JOIN commandes ON users . id = commandes . id_user WHERE commandes . id_user IS NULL GROUP BY users . id
Pas de souci, ça fonctionne.

Maintenant, si je veux obtenir "N'a pas commandé depuis 1 an", je ne sais pas trop comment faire, car une simple condition de date sur la jointure n'est pas suffisante : "n'a pas commandé depuis 1 an" suppose que, avant cette année passée, le client avait déjà commandé au moins une fois...

Auriez-vous des idées à ce propos ?

Merci pour votre aide.

Re: Sélectionner les utilisateurs n'ayant pas commandé depuis 1 an

Posté : 30 oct. 2021, 16:34
par or 1
count() pour compter le nombre de commande et tester que c'est > 0.
et le test sur la date de dernière commande.

Re: Sélectionner les utilisateurs n'ayant pas commandé depuis 1 an

Posté : 30 oct. 2021, 17:26
par finipe
Merci pour ta réponse rapide !

Je ne vois cependant pas comment je peux tester la date de dernière commande pour tous les users de la base de données :?

J'ai fait une requête pour tester les users qui ont commandé au moins 2× par exemple, en utilisant un INNER JOIN et HAVING COUNT(*)>=2 à la fin, mais je ne vois pas comment transposer ça à la question "n'a pas commande depuis ..."