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

Access Discussion :

Count ( ) --> 0


Sujet :

Access

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Points : 51
    Points
    51
    Par défaut Count ( ) --> 0
    Bonjour,

    Mon problème est le suivant je souhaiterais avoir un retour égal à 0 quand il n'y a rien dans le COUNT de ma requête.
    J'ai déjà trouvé une discussion parlant de cela j'ai essayé d'appliquer la solution proposée mais je n'y arrive pas.

    Voici ma requête d'origine :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT COUNT(T.objet.numero) AS mvt, T.magasin.identifiant, DatePart('ww',T.objet.date,2,1)-1 AS nsemaine
    FROM (SELECT objet.numero , magasin.identifiant, objet.date FROM objet INNER JOIN (magasin INNER JOIN m_s_o ON magasin.identifiant = m_s_o.identifiant) ON objet.numero = m_s_o.numero
    WHERE objet.Mvt = 101
    UNION ALL
    SELECT objet.numero, magasin.identifiant, objet.date FROM objet INNER JOIN (magasin INNER JOIN m_s_o ON magasin.identifiant = m_s_o.identifiant) ON objet.numero = m_s_o.numero
     
    WHERE objet.Mvt = 281
    )  AS T
    GROUP BY T.magasin.identifiant, DatePart('ww',T.objet.date,2,1)-1
    ORDER BY DatePart('ww',T.objet.date,2,1)-1;

    Voici le lien de la discussion qui m'a inspiré :
    http://www.developpez.net/forums/d15...her-count-0-a/

    Voici ma tentative de solution :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT COUNT(T.objet.numero) AS mvt, T.magasin.identifiant, DatePart('ww',T.objet.date,2,1)-1 AS nsemaine
     
    FROM 
    (
    SELECT objet.numero , magasin.identifiant, objet.date FROM objet RIGHT JOIN (magasin RIGHT JOIN m_s_o ON magasin.identifiant = m_s_o.identifiant) ON objet.numero = m_s_o.numero
    AND WHERE objet.Mvt = 101
    UNION ALL
    SELECT objet.numero, magasin.identifiant, objet.date FROM objet RIGHT JOIN (magasin RIGHT JOIN m_s_o ON magasin.identifiant = m_s_o.identifiant) ON objet.numero = m_s_o.numero
    AND WHERE objet.Mvt = 281
    )  AS T
    GROUP BY T.magasin.identifiant, DatePart('ww',T.objet.date,2,1)-1
    ORDER BY DatePart('ww',T.objet.date,2,1)-1;

    Cela me renvoie erreur de synthase opérateur absent dans l'expression. Après je ne suis pas sûr qu'il faut des RIGHT JOIN.

    Voici les tables de mes sous requêtes :
    Nom : problème.png
Affichages : 319
Taille : 5,4 Ko

    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut Count ( ) --> 0
    Tu peux résoudre le problème sans passer par VBA. Voici une esquisse de la solution (que tu peux trouver via 'aide' sur union query):
    En mode création:
    1. créer une 1ère requête (ta 1ère ligne de code: select ....); tester son fonctionnement, et la laisser active en mode création
    2. créer une 2ème requête (ta 2ème ligne de code commençant par select ....); tester son fonctionnement, et la laisser active en mode création
    3. créer une 3ème requête dans laquelle il n'y a pas de table, mais que tu ouvres en mode SQL

    Tu te retrouves avec 3 requêtes actives à l'écran

    4. mettre la 1ère requête en mode SQL, copier les instructions SQL et coller dans la fenêtre de la requête 3
    5. supprimer le ";" en fin de ligne
    6. rajouter "Uninon All" sur la ligne en dssous
    7. mettre la 2ème requête en mode SQL, copier les instructions SQL et coller dans la fenêtre de la requête 3, juste en dessous de "union all"
    8. exécuter la 3ème requête, et observer le résultat

    Si ça va, il faut enregistrer la 3ème requête, et supprimer les 2 premières (sauf si tu tiens à les garder pour usage ultérieur)
    Attention: pour que ceci fonctionne, il faut que les requêtes 1 & 2 aient le MEME nombre de champs. Les champs doivent avoir les mêmes attributs mais pas nécessairement les mêmes noms. Exemple : si le champs 1 de la requête 1 est numérique, le champs 1 de la requête 2 doit être aussi numérique; idem pour les champs suivants.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    Je trouve ta réponse bizarre car c'est ce que j'ai fait dans ma requête avec le UNION ALL et cela ne marche pas.
    Et je n'ai pas parlé de VBA.
    En fait le problème est que le where filtre mon count mais apparemment avec la solution de la discussion que j'ai cité, cela devrait fonctionner mais je n'y arrive pas.

  4. #4
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut Count > 0 & union all
    Désolé si ma réponse te paraît bizarre, seulement j'ai juste voulu t'orienter vers une piste qui pourrait t'aider à trouver la source du problème; cela dit, personne ne t'oblige à adopter les propositions données; un petit "merci" pour la peine que l'on prend pour décortiquer le problème (qui n'est pas toujours évident) aurait fait plaisir même si l'on répond à côté de la plaque; je reste néanmoins convaincu que la piste proposée mérite d'être essayée. Bonne chance !

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2015
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 93
    Points : 51
    Points
    51
    Par défaut
    rebonjour,

    Je n'ai toujours pas réussi à résoudre ce problème malgré le lien que j'ai posté.
    Quelqu'un aurait il une idée svp ?

    Merci d'avance !

  6. #6
    Membre émérite Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 670
    Points : 2 489
    Points
    2 489
    Par défaut Count >0
    Est-ce que tu peux poster copie de ta DB (avec données fictives) ?

Discussions similaires

  1. UNION et COUNT(*)
    Par Goldust dans le forum Langage SQL
    Réponses: 2
    Dernier message: 08/08/2003, 09h30
  2. limiter le résultat retourné par le count
    Par SuperFoustan dans le forum Langage SQL
    Réponses: 8
    Dernier message: 05/08/2003, 12h10
  3. Problème dans requête avec count()
    Par BadFox dans le forum Requêtes
    Réponses: 3
    Dernier message: 08/07/2003, 18h02
  4. Multiple Count
    Par Antichoc dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/03/2003, 11h19
  5. Compter le nombre ligne listée (COUNT) ?
    Par StouffR dans le forum Langage SQL
    Réponses: 7
    Dernier message: 02/09/2002, 09h41

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