IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Recherche d'un nombre en fonction d'un temps


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Par défaut Recherche d'un nombre en fonction d'un temps
    Bonjour à tous,
    Je souhaite rechercher le nb de personnes qui n'ont pas fait d'achats depuis 3 ans par exemple.
    Pour pouvoir les relancer et surtout les cibler.
    Sachant qu'il existe dans la base une date d'achat, j'aimerais savoir combien de personnes n'ont pas acheté depuis 3 ans.
    Merci

  2. #2
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    c'est ça:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Select count(*) NB_PERSONNES
    From Client C
    Where Not Exists (Select 1 From Achat A 
                              Where A.Code_Per= C.Code_Per 
                               And Date_Achat> : Param_Date )

    Parm_Date: contient la date à partir de laquelle vous voulez chercher les personnes non actifs


  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Par défaut
    Merci, je vais tester, j'ai omis de vous dire que je travaille sur SQL serveur.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Par défaut
    ET petite question , le chiffre 1 correspond à quoi exactement??

  5. #5
    Membre très actif Avatar de hazamor
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2008
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2008
    Messages : 179
    Par défaut
    la 2 ème requête va retourner l'entier '1', et c'est quelconque , tu peut faire même ou parceque notre but est de tester est ce que la requete retourne une resultat ou non et même si elle est un caractère. Et est plus legère que

  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 999
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 999
    Billets dans le blog
    6
    Par défaut
    (SELECT 1...)
    est plus legère que
    (SELECT *...)
    Ceci n'est généralement pas vrai ! En effet utiliser l'étoile dans le EXISTS est un cas particulier d'optimisation ou le serveur à le choix de la constante qu'il place derrière le SELECT (booléen par exemple), alors qu'en forçant un 1 vous l'obligez à un type de données qui peut s'avérer plus gourmand (bigint par exemple)...

    En tout état de cause il vaut mieux mettre SELECT * dans les sous requêtes introduites par le prédicats de quantification EXISTS lorsque cela est possible (ce qui n'est pas toujours le cas).

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 49
    Par défaut
    Merci à vous, j'ai du mal à mettre en oeuvre la petite requête.
    Mais bon j'essaie et je persévère.
    Merci encore.

Discussions similaires

  1. classement de nombres en fonction de leur freq d'apparition
    Par didier.schmit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 04/08/2007, 09h08
  2. Réponses: 7
    Dernier message: 31/07/2007, 13h28
  3. rechercher dans un tableau en fonction de la valeur d'une cellule
    Par jefe.k dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/06/2007, 10h04
  4. Recherche multicritères dans une seule fonction ?
    Par ilouma dans le forum Pascal
    Réponses: 13
    Dernier message: 06/05/2007, 22h19
  5. Réponses: 4
    Dernier message: 28/09/2005, 09h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo