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

MS SQL Server Discussion :

[SQL2005][Query] Utilisation du count(*)


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Par défaut [SQL2005][Query] Utilisation du count(*)
    Bonjour

    Je n'arrive pas à requeter correctement sur une table et j'aimerai bien comprendre le fonctionnement d'un count(*)

    j'ai une table incident avec les champs suivant
    aug_companycode, aug_companyname

    je dois compter le nombre d'entreprise (companyname) qui ont ouvert un ticket incident, il leur faut le code de la societe, le nom de la societe, le nombre de societe, et le timestamp

    le code ci dessous fonctionne et me retourne bien le code le nombre et le time stamp, mais des que j'enleve le commentaire sous aug_company name, le systeme me dit

    Msg 8120, Level 16, State 1, Line 1
    La colonne 'incident.AUG_CompanyName' n'est pas valide dans la liste de sélection parce qu'elle n'est pas contenue dans une fonction d'agrégation ou dans la clause GROUP BY.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    select distinct 
    count(aug_companycode),
    --aug_companyname ,
    aug_companycode ,
    CURRENT_TIMESTAMP 
     
    from incident 
    where 
    status<>'closed' 
    and 
    aug_companycode<>'' 
     
    group by aug_companycode
    Je ne sais pas comment je pourrais me dépatouiller mais tout aide est la bienvenue. En vous remerciant par avance.

  2. #2
    Membre expérimenté
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Par défaut
    Bonjour,

    Le group by doit porter sur TOUTES les colonnes qui ne participent pas au calcul d'agrégat. Dans votre cas je suppose que pour 1 aug_companycode il y a toujours le même aug_compagnyname.
    Donc vous pouvez ajouter le aug_compagnyname dans le GROUP BY

  3. #3
    Membre confirmé
    Avatar de Konrad Florczak
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 242
    Par défaut
    Merci, ça marche nickel, effectivement je ne connaissais pas cette subtilité

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

Discussions similaires

  1. Utilisation de Count...grand débutant
    Par petitours dans le forum Access
    Réponses: 3
    Dernier message: 08/02/2006, 14h53
  2. Process a 25% (lors d'un query utilisant un subselect)
    Par zeavan dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/01/2006, 11h46
  3. utilisation de count(*) en condition
    Par clemsouz dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/09/2005, 14h32
  4. utilisation de count(*) en condition
    Par clemsouz dans le forum Langage SQL
    Réponses: 12
    Dernier message: 26/09/2005, 14h29
  5. [xsl]utilisation du count
    Par Grimaud dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 28/07/2005, 10h09

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