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 :

Compter avec condition dans une requête


Sujet :

Requêtes et SQL.

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Compter avec condition dans une requête
    Bonjour,

    Savez-vous comment on peut utiliser la variable compter sous condition (compter les enregistrements si...)

    Exemple:

    J'ai une table avec les champs "salariés", "société", "Age", "Date d'arrivée". Il y a plus de

    Je veux la liste des sociétés avec en face le nombre de salariés ayant plus de 40 ans et le nombre de salariés arrivés depuis plus de 3 ans.

    Merci infiniment

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 645
    Points : 34 353
    Points
    34 353
    Par défaut
    salut,
    tu peux voir la fonction COUNT(), avec les clauses HAVING derriere

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Count avec HAVING sous Access
    Bonjour et merci jpcheck,

    j'essaye un code comme celui-ci:

    Count([ENTREPRISE]![SOCIETE]) HAVING (([ENTREPRISE].AGE)>40)

    Mais il me renvoie "Erreur de syntaxe, opérateur absent"

    J'ai certainement mal placé le HAVING mais franchement je ne vois pas. Merci encore pour ton aide

  4. #4
    Membre habitué Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Points : 142
    Points
    142
    Par défaut
    bonjour,

    essais comme ceci

    Count([ENTREPRISE]![SOCIETE]) HAVING (([ENTREPRISE]![AGE])>'40')

    salut

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2007
    Messages : 226
    Points : 261
    Points
    261
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT Count(ENTREPRISE.SOCIETE) AS NbEnrg
    FROM ENTREPRISE
    WHERE (((ENTREPRISE.AGE)>40)); 'Si AGE est texte placer la valeur entre double quote

  6. #6
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Essai comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT Entreprise.societe, Count(Entreprise.age) AS CompteDeage
    FROM Entreprise
    WHERE (((Entreprise.age)>40))
    GROUP BY Entreprise.societe;

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Requête pour compter sous condition
    Bonjour et un grand merci pour cette mobilisation générale autour de mon cas.

    J'ai essayé toutes vos solutions et voici ce que ça a donné

    Celle de Daniel Moreau me renvoie encore une erreur de syntaxe

    Celle de Renardo me donne uniquement les salariés ayant plus de 40 ans. Si par exemple je n'ai que la société Bidon qui n'a qu'un seul salarié de plus de 40 ans, le résultat de la requête sera: Bidon:1
    Alors que je voudrais la liste entière des sociétés avec en face le nombre de salariés de plus de 40 ans, même si c'est égal à 0

    Celle de MIKEGO20 ne me renvoie que le chiffre 1 puisque que le champ 'SOCIETE' n'est pas sélectionné dans le code.

    Merci encore en tout cas mais le débat reste ouvert!

  8. #8
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 645
    Points : 34 353
    Points
    34 353
    Par défaut
    salut,
    ce qui me fait sourire, c'est que age, c'est l'age du salarie, alors que ton architecture de table semble indiquer l'age de la société...

    et ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT Entreprise.societe, Count(Entreprise.age) AS CompteDeage
    FROM Entreprise
    WHERE (((Entreprise.age)>40) AND Entreprise.[Date d'Arrivée]<Now-1095)
    GROUP BY Entreprise.societe;
    on peut regarder DateAdd je crois.

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour et merci JPCheck,

    Il s'agit bien d'une table avec la liste des sociétés et pour chacune, la liste des salariés, leur âge et leur date d'entrée.

    Ta requête me renvoie toujours Bidon:1

    Il me faudrait la liste des sociétés et pour chacune d'elle le nombre des salariés ayant plus de 40 ans et le nombre de salariés entrés depuis plus de 3 ans.

  10. #10
    Membre chevronné Avatar de Renardo
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 648
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 648
    Points : 2 019
    Points
    2 019
    Par défaut
    Et comme cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT Entreprise.Societe, Count([Age]=IIf(([Age]>40),0)) AS Sup40Ans, Count([DateArrive]=IIf(Date()>=[DateArrive]+1095,0)) AS Sup3Ans
    FROM Entreprise
    GROUP BY Entreprise.Societe;

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Yessssss! Ca marche à la perfection. Je suis aux anges. Merci encore à tous.

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

Discussions similaires

  1. [MySQL] Mettre des conditions dans une requête mysql avec pdo
    Par shima5 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/10/2010, 21h11
  2. Comment regrouper avec une condition dans une requête
    Par moilou2 dans le forum Requêtes et SQL.
    Réponses: 7
    Dernier message: 22/07/2008, 10h39
  3. Condition dans une requête croisée
    Par decour dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2005, 10h31
  4. Peut on insérer une condition dans une requête ?
    Par MITCH31 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 22/09/2005, 18h26
  5. Condition dans une requête
    Par fdloisel dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 30/08/2004, 16h55

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