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 :

Comment calculer le nombre d'enregistrements correspondants au critère de la requête


Sujet :

Requêtes et SQL.

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 35
    Points
    35
    Par défaut Comment calculer le nombre d'enregistrements correspondants au critère de la requête
    Bonjour, j'ai beaucoup de mal avec cette fonction que j'aimerais utiliser que j'ai trouver sur un cours proposé sur le site. La voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(CHAMP1) From LATABLE Where CHAMP2 = 3 And CHAMP3 LIKE "*blabla*"
    Je ne comprend pas à quel moment je doit l'insérer dans ma requête qui est beaucoup plus complexe et je ne comprend pas l'exemple "*blabla*". A quoi correspond t-il?

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut,

    Il faut spécifier un nom de champ :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    Select count(CHAMP1) AS CompteChamp1 From LATABLE Where CHAMP2 = 3 And CHAMP3 LIKE "*blabla*"

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 35
    Points
    35
    Par défaut
    D'accord mais si j'ai beaucoup plus de champs dans ma requête comment je fais?

  4. #4
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Pour reprendre ton 1er post :

    Ce serait déjà bien que tu nous donnes ta requête et pas l'exemple, ensuite Si tu fais un compte : il nous faut plus d'infos sur ta requête et ce que tu souhaites afficher.

    Ensuite en ce qui concerne *BLABLA* : c'est un exemple.
    Ce la signifie que l'on cherche dans le champ CHAMP3 les valeurs contenant le critère (WHERE) blabla.

    Tu aura donc en résultat :
    • mon blabla
    • blablatons
    • on blablate depuis 2 heures
    • j'ai rien compris à ton blabla
    • blabla




    Un problème bien expliqué est à moitié résolu

  5. #5
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 35
    Points
    35
    Par défaut
    En fait, ce que j'aimerais faire est assez complexe (en tout cas pour moi), je m'explique:
    J'ai une requête qui lorsque je l'exécute m'affichent environ une vingtaine de réponse.
    J'ai un 1er état programmé pour m'afficher les 6 premières réponses, un second pour les 6 suivantes, un troisième pour les 6 suivantes et un quatrième pour encore 6 réponses.
    Cela fonctionne bien sauf que lorsque je n'ai par exemple que 10réponses le troisième et le quatrième état vont m'afficher les mêmes réponses que pour le second.

    Ma solution: compter le nombre de réponse à ma requête et ne rendre visible par exemple l'état 3 et 4 que si le nombre de réponse est supérieur à 12.

    Voici ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT TOP 24 PRODUCTION.APPELLATION, PRODUCTION.COULEUR, PRODUCTION.[TYPE PRODUCTION], Month([Date]) AS Expr2, Sum(OPERATIONS.[Entrées Hl]) AS [SommeDeEntrées Hl], Sum(OPERATIONS.[vrac DAA/DAC]) AS [SommeDevrac DAA/DAC], Sum(OPERATIONS.[bouteille neutre export DAA/DAC]) AS [SommeDebouteille neutre export DAA/DAC], Sum([lies])+Sum([Pertes]) AS [Lies/Pertes], Sum(OPERATIONS.[DSA/DSAC tickets ou fracturettes]) AS [SommeDeDSA/DSAC tickets ou fracturettes], Sum(OPERATIONS.[Bouteilles CRD ou apposition de CRD]) AS [SommeDeBouteilles CRD ou apposition de CRD], Sum(OPERATIONS.[Consommation familiale, dégustation, analyses]) AS [SommeDeConsommation familiale, dégustation, analyses], Sum(OPERATIONS.[replis, déclassement]) AS [SommeDereplis, déclassement], Sum(OPERATIONS.dplc) AS SommeDedplc, Sum([lies])+Sum([Pertes])+Sum([replis, déclassement])+Sum([Consommation familiale, dégustation, analyses])+Sum([Bouteilles CRD ou apposition de CRD])+Sum([DSA/DSAC tickets ou fracturettes])+Sum([bouteille neutre export DAA/DAC])+Sum([vrac DAA/DAC]) AS Totalsorties, Sum([Entrées Hl])-(Sum([lies])+Sum([Pertes])+Sum([replis, déclassement])+Sum([Consommation familiale, dégustation, analyses])+Sum([Bouteilles CRD ou apposition de CRD])+Sum([DSA/DSAC tickets ou fracturettes])+Sum([bouteille neutre export DAA/DAC])+Sum([vrac DAA/DAC])) AS SthéoFDM
    FROM PRODUCTION INNER JOIN OPERATIONS ON PRODUCTION.[NUM PRODUCTION] = OPERATIONS.[NUM PRODUCTION]
    GROUP BY PRODUCTION.APPELLATION, PRODUCTION.COULEUR, PRODUCTION.[TYPE PRODUCTION], Month([Date]), Year([Date])
    HAVING (((PRODUCTION.[TYPE PRODUCTION])=2) AND ((Month([Date]))=[Formulaires]![Edition DRM]![txtmois]) AND ((Year([Date]))=[Formulaires]![Edition DRM]![txtannée]))
    ORDER BY PRODUCTION.APPELLATION, PRODUCTION.COULEUR;
    Je vous remercie vraiment si vous pouvez m'aider!!!

  6. #6
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Par curiosité (et pour comprendre aussi) : pourquoi utiliser 4 états pour afficher le résultat d'une requête ?

    J'ai du mal à comprendre...

  7. #7
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 35
    Points
    35
    Par défaut
    longue histoire, pour mon stage, je dois informatiser un système de gestion pour les vignerons. Après avoir rempli leurs mouvements d'entrées et sorties, les totaux vont venir s'afficher dans une grille qui doit être envoyée aux douanes pour des taxes... Bref, sauf que dans une grille je ne peut mettre que 6 enregistrements en colonnes avec les uns en dessous des autres mes totaux mensuels. Chaque colonne est définie par une production et une couleur (exemple un côte du rhône rouge). Sauf que lorsque j'ai plus de 6 enregistrements les nouvelles colonnes se mettent en dessous des 6 premières colonnes et cela est impossible avec ma grille.
    Voilà j'espère avoir répondu à ta question

  8. #8
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Ce ne serait pas une histoire de mise en page de l'état ça ??

    En clair tu souhaites avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Page 1 :
    Mois          Enreg1    Enreg2    Enreg3    Enreg4    Enreg5    Enreg6
    Janvier
    Fevrier
    Mars
    ...
    Novembre
    Décembre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Page 2
    Mois          Enreg7    Enreg8    Enreg9    Enreg10    Enreg11    Enreg12
    Janvier
    Fevrier
    Mars
    ...
    Novembre
    Décembre

  9. #9
    Nouveau membre du Club
    Inscrit en
    Avril 2008
    Messages
    129
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 129
    Points : 35
    Points
    35
    Par défaut
    c'est presque ça en fait ça donne plutôt:
    page1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    appellation :               enrg1 enrg2 ... enrg6
    totaux quantité entrées:
    totaux quantité sorties1:
    totaux quantité sorties2:
    etc...
    page2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    appellation :                 enrg7 enrg8 ... enrg12
    totaux quantité entrées:
    totaux quantité sorties1:
    totaux quantité sorties2:
    etc...
    Oui c'est pour des soucis de mise en page que j'ai fais comme ça car je n'ai pas trouvé d'autre moyen

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/03/2012, 19h01
  2. [AC-2007] calculer le nombre d'enregistrement correspondant à un critère
    Par pierre1923 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 15/11/2011, 12h18
  3. Réponses: 9
    Dernier message: 27/09/2007, 15h15
  4. Comment récupérer le nombre d'enregistrements effacés ?
    Par Jérôme Lambert dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/10/2006, 09h22
  5. Réponses: 2
    Dernier message: 06/08/2006, 00h08

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