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

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Sélectionner les utilisateurs n'ayant pas commandé depuis 1 an

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

par finipe » 30 oct. 2021, 17:26

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 ..."

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

par or 1 » 30 oct. 2021, 16:34

count() pour compter le nombre de commande et tester que c'est > 0.
et le test sur la date de dernière commande.

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

par finipe_ » 30 oct. 2021, 16:27

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.