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

Requêtes et SQL. Discussion :

requête avec sous-requête


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Points : 64
    Points
    64
    Par défaut requête avec sous-requête
    Bonjour...
    Je planche sur ma requete depuis quelquetemps déjà et je n'arrive pas à trouver pourquoi elle ne me donne pas les bons résultats....
    J'ai une table avec 3 champs: Nom, Date,Theme.

    je voudrais afficher la somme de 2 Theme possibles apres avoir rentré des dates limites

    Dans mes themes, j'ai (ceux qui m'interesse) Offre , Offre_autre, Validation.
    Il y a forcement Offre ou Offre_autre, mais pas toujours Validation pour un nom donné.
    Je voudrais avoir le compte des Offre et Offre_autre entre 2 dates et pour ses cas avoir le compte des Validation.
    Un nom ne peut avoir qu'une Offre ou Offre_autre et qu'une validation maximum.

    Dans ma requete, je compte le nombre de nom qui correspond d'apres moi au nombre de Offre* ( c'est peut etre la mon erreur...).

    Enfin assez de suspens , voici ma requete :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT Count(Contacts.Nom) AS CompteOffre, Count(Contacts.Thème) AS CompteValidation
    FROM Contacts
    WHERE ( ( [Contacts].[Thème] )="Validation" )
     and exists ( SELECT Contacts.Nom
    FROM Contacts
    WHERE  ( ( ( Contacts.Thème ) Like "Offre*" ) AND ( ( Contacts.Date ) Between [date debut] And [date fin] ) ) );
    Merci de m'orienter vers les solutions possible.

  2. #2
    Membre expert
    Avatar de mout1234
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 210
    Points : 3 228
    Points
    3 228
    Par défaut
    Bonjour,


    Ta description n'est pas très claire... Qu'entends-tu par exemple par
    ...et pour ses cas ...

    Donne STP des exemples de données dans ta table et le résultat attendu.



    En tout cas, en supposant que la sous-requête est nécessaire, s'aigissant d'un EXISTS, elle doit logiquement être liée à la requête principale par une clause WHERE...

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

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Points : 64
    Points
    64
    Par défaut
    voici des exemples pour etre plus concret

    (désolé pour la mise en forme, c'est pas encore mon fort )

    Nom date Theme
    Martin 01/01/2009 Offre
    Martin 02/01/2009 BLABLA
    Martin 07/01/2009 BLABLA
    Martin 15/01/2009 BLABLA
    Martin 02/02/2009 Validation
    Martin 05/02/2009 BLABLA

    Dupont 02/01/2009 Offre_autre
    Dupont 05/01/2009 BLABLA
    Dupont 06/01/2009 BLABLA

    Durand 22/12/2008 Offre
    Durand 31/12/2009 BLABLA
    Durand 08/01/2009 Validation
    Durand 19/01/2009 BLABLA

    Smith 07/01/2009 Offre
    Smith 10/01/2009 BLABLA
    Smith 15/01/2009 Validation
    Smith 30/01/2009 BLABLA


    Je voudrais donc avoir le compte des offres entre 2 dates données, que se soit Offre ou Offre_autre et avoir le nombre de Validation pour ses offres.
    Si on prend les dates du 01/01/2009 et 31/01/2009:

    Martin a une Offre dont la date est dans la fourchette, le compteur pour Offre augmente donc de 1, sa date pour Validation, n'a pas d'importance , seul compte le fait qu'il y ait une validation, donc la le compteur validation augmente de 1.
    Dupont a une offre dans la fourchette (compteur offre +1) mais pas de validation.
    durand a une offre hors des dates, on ne le comptabilise pas ni pour offre ni pour validation.
    Smith a une ofrre dans la fourchette (compte offre+1) et une validation ( compte validation +1).

    le resultat souhaité est compte offre:3 compte validation:2

    Voila, j'espere qu'avec cet exemple, j'aurais été plus explicite.
    Je rapelle qu'il ne peut pas y avoir de validation si il n'y a pas eu d'offre (ou offre_autre)

    Le but est de compter les offre sur une periode et le nombre de validation pour chaque nom qui a une offre sur cette periode.

    Merci.

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    A tout hasard
    req1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom,  theme as offre from tatable wehre (date between date1 and date2) and (theme='offre');
    req2:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom,  theme as valide from tatable wehre (date >=date1) and (theme='validation');
    req3:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select count(offre), count(valide) from req1 inner joint req2 on req1.nom=req2.nom;
    Donc trois requêtes pour faire le travail.
    Je m'excuse si le code sql présente des fautes (je passe toujours pas qbe dans la plus part des cas)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 69
    Points : 64
    Points
    64
    Par défaut
    Bonjour...

    ça marche ....presque
    la 3' requete me retourne le nombre de validation dans les 2 cas, mais avec un left join, ça marche.

    Merci bien pour l'aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête avec Sous Requête DMAx, problème ajout
    Par charliejo dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 26/02/2014, 10h48
  2. [AC-2010] requête et sous-requête avec paramètres
    Par Ragmaxone dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/12/2012, 17h37
  3. Réponses: 7
    Dernier message: 10/10/2009, 15h55
  4. Réponses: 4
    Dernier message: 29/07/2009, 14h19
  5. Requête et sous requête avec SELECT et UPDATE
    Par Véronique75ca dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 29/06/2006, 21h25

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