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 :

Count ne renvoie pas de valeur


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut Count ne renvoie pas de valeur
    Bonjour,

    j'ai besoin d'une requete qui me permette d'afficher un compte de valeur.

    Lorsque j'ai des valeurs, COUNT me renvoie bien le nombre demandé. En revanche, lorsque je n'ai pas de valeur, il ne renvoie rien.

    J'ai trouvé une solution de contournement, mais je pense qu'il y a plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT     TOP (1) NbUp
    FROM         (SELECT     COUNT(Compteur) AS NbUp
                           FROM          FileTable
                           GROUP BY Partial
                           HAVING      (Partial = 0)
                           UNION
                           SELECT     0 AS NbUp) AS tout
    ORDER BY NbUp DESC
    Qu'en pensez-vous ?

    merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 683
    Par défaut
    Pas de définition des tables
    Pas d'expression de ce que doit faire la requête
    Pas de SGBD mentionné

    Impossible de vous aider. Demander de l'aide, c'est bien. Fournir le minimum d'information pour qu'une aide soit possible, c'est mieux.

    Par respect pour les gens qui tentent de vous aider, merci de fournir le maximum d'information pertinente pour la résolution du problème et leur éviter de réfléchir dans le vide.

  3. #3
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par NicoNGRI Voir le message
    Lorsque j'ai des valeurs, COUNT me renvoie bien le nombre demandé. En revanche, lorsque je n'ai pas de valeur, il ne renvoie rien.
    Je ne vois pas ce qu'il y a d'anormal dans tout ça, effectivement sans rien expliquer ou décrire, impossible d'aider
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Bonjour,

    je pense que lire un tant soit peu le bout de code sql permet de comprendre la problématique. Je l'explique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT     COUNT(Compteur) AS NbUp
                           FROM          FileTable
                           GROUP BY Partial
                           HAVING      (Partial = 0)
    dans une table quelconque, on compte le nombre d'enregistrements répondant à une contrainte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     UNION
                           SELECT     0 AS NbUp
    on ajoute une ligne contenant comme valeur 0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT     TOP (1) NbUp
    FROM         (SELECT     COUNT(Compteur) AS NbUp
                           FROM          FileTable
                           GROUP BY Partial
                           HAVING      (Partial = 0)
                           UNION
                           SELECT     0 AS NbUp) AS tout
    ORDER BY NbUp DESC
    On affiche uniquement la valeur la plus élevée.

    Comme je l'expliquait, je souhaite que ma requète renvoie 0 s'il n'existe aucun enregistrements correspondant à la contrainte et le nombre d'enregistrements exact lorsque s'il existe des enregistrements correspondants à la contrainte.

    Par ailleurs il est vrai que je n'ai pas indiqué que j'utilisais SQL 2005.

    Merci pour votre temps et votre patience.

  5. #5
    Rédactrice

    Avatar de Fleur-Anne.Blain
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 636
    Par défaut
    Dans ce cas il faut créer une fonction SQL ou procédure ne fait qu'interroger la base de données fonction de certains critère...c'est un langage d'interrogation de bdd pas un langage de programmation. Le if n'est pas possible encor emoins le return

    Citation Envoyé par NicoNGRI Voir le message
    On affiche uniquement la valeur la plus élevée.

    Comme je l'expliquait, je souhaite que ma requète renvoie 0 s'il n'existe aucun enregistrements correspondant à la contrainte et le nombre d'enregistrements exact lorsque s'il existe des enregistrements correspondants à la contrainte.

    Par ailleurs il est vrai que je n'ai pas indiqué que j'utilisais SQL 2005.

    Merci pour votre temps et votre patience.
    la culture c'est comme la confiture moins on en a plus on l'étale.

    Mes tutos

  6. #6
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    D'accord !

    Dans ce cas, ma requète sera donc plus efficace en terme de ressource.

    Merci Beaucoup

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/04/2009, 01h55
  2. Select Case ne renvoie pas la valeur attendue
    Par H.ile dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/01/2009, 14h58
  3. [A03] Recordsaffected qui ne renvoie pas la valeur escomptee
    Par caro2552 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 07/01/2009, 11h32
  4. COUNT() selon un pas de valeurs ?
    Par ctobini dans le forum Requêtes
    Réponses: 1
    Dernier message: 17/06/2008, 11h53
  5. Réponses: 3
    Dernier message: 08/11/2006, 23h04

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