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 :

Faire un compte dans une requete sql qui contient le critère "premier" [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut Faire un compte dans une requete sql qui contient le critère "premier"
    Bonjour,

    Je dois créer une requete qui doit afficher le nombre d'enregistrement du champ ItemID de la table dbo_vwItemData.
    je sais faire le count mais le soucis est que cette requete contient un champ avec le critère "premier" : c'est le champ destination de la table affich-general.

    Lorsque , dans cette requete, je selectionne l'operation "regroupement" du champ ItemID, la requete me donne la liste des ItemID correspondant à ma requete.
    Mais lorsque, dans cette même requete, je selectionne non plus "regoupement" mais "compte" du champ ItemID, la requete me donne un total farfelu .
    J'ai l'impression que la requete ne sais pas faire un compte avec le critère "premier" contenu dans un autre champ (dans ce cas précis dans le champ destination).

    Pour contourner le problème ,j'ai du créer, a partir de cette requete, une second requete ou là je peux selectionner "compte" du champ ItemID et j'obtiens le bon total de ItemID de la table dbo_vwItemData.

    Ma question est, peut on eviter de créer une second requete et obtenir le bon total en une seul requete ?
    merci d'avance pour votre aide

    Ci dessous, ma 1ere requete en SQL (traduction du mode création en mode SQL)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    PARAMETERS [date] DateTime;
    SELECT First([table_Affich-general_1].DESTINATION) AS PremierDeDESTINATION, dbo_vwItemData.ItemID
     
    FROM ((dbo_vwItemEventHistory INNER JOIN ((dbo_vwItemData INNER JOIN dbo_vwParts ON dbo_vwItemData.DischargePartID = dbo_vwParts.ID) INNER JOIN [table_Affich-general] ON dbo_vwParts.DisplayName = [table_Affich-general].[Chute (format access)]) ON dbo_vwItemEventHistory.ItemID = dbo_vwItemData.ItemID) INNER JOIN dbo_vwParts AS dbo_vwParts_1 ON dbo_vwItemEventHistory.PartID = dbo_vwParts_1.ID) INNER JOIN [table_Affich-general] AS [table_Affich-general_1] ON dbo_vwParts_1.DisplayName = [table_Affich-general_1].[Chute (format access)]
     
    WHERE (((dbo_vwItemData.DischargeEventTime)>=([date]+9/48) And (dbo_vwItemData.DischargeEventTime)<=([date]+1+9/48)) AND ((Left([dbo_vwParts_1]![DisplayName],5))="Chute") AND (([table_Affich-general].DESTINATION) Like "REJETS RECIRCULATION*"))
     
    GROUP BY dbo_vwItemData.ItemID;

  2. #2
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 617
    Points : 56 722
    Points
    56 722
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Citation Envoyé par facteur Voir le message
    Mais lorsque, dans cette même requete, je selectionne non plus "regoupement" mais "compte" du champ ItemID, la requete me donne un total farfelu .
    Je n'ai peut-être pas bien compris mais... :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT First([table_Affich-general_1].DESTINATION) AS PremierDeDESTINATION, 
              count(dbo_vwItemData.ItemID) as Nb,
              dbo_vwItemData.ItemID
    FROM...
    GROUP BY dbo_vwItemData.ItemID;
    ... ne marche pas ?

  3. #3
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour F_Leb,
    La requete
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT First([table_Affich-general_1].DESTINATION) AS PremierDeDESTINATION, 
              count(dbo_vwItemData.ItemID) as Nb,
              dbo_vwItemData.ItemID
    FROM...
    GROUP BY dbo_vwItemData.ItemID;
    me donne bien un comte de ItemId.
    mais je me suis mal exprimé.
    Voila le résultat de la requête ci dessous :

    PremierDeDES            Nb                ItemID
    EXPORT ITALIE             7                229227556
    EXPORT ITALIE             8                229227640
    EXPORT ITALIE             8                229227658
    EXPORT ITALIE             9                229227692
    EXPORT ITALIE             8                229227695
    EXPORT ITALIE             5                229227725
    REJET ERREUR              8                229229596
    REJET ERREUR             10                229229606
    REJET ERREUR             15                229229620
    REJET ERREUR              2                229229666
    Les quantité du champ "nb" ( 7; 5; 10; ...) correspond au nombre de fois ou l'ItemID (identifiant du produit) a été détécté sur la machine.
    Or ce que je souhaite ce n'est pas le nombre de fois où l'ItemID a été détecté sur la machine mais l'identifier une seul fois.
    Ainsi, ma requête me donnerait un count 6 pour la destination "EXPORT ITALIE" car j'aurais 6 ItemID pour cette destination. J'aurais un count 3 pour la destination "REJET ERREUR" car j'aurais 3 ItemID pour cette destination (cf ci dessous)

    PremierDeDES            Nb               
    EXPORT ITALIE             6               
    REJET ERREUR              4
    Je ne sais pas si je suis plus claire dans mes explications..

  4. #4
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    Bonjour,

    sauf erreur de ma part, étant donné que ta requête exploite le résultat d'une deuxième requête je ne pense pas que tu puisses faire autrement que d'avoir 2 requêtes.

    mais en quoi cela te gêne t-il d'avoir 2 requêtes ?
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  5. #5
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    Bonjour pyloupylou ,
    je voulais une simple requete pour des raison de lisiblités. Ma base de donnée possédent déjà d'inombrables requete.
    Mais si je ne peux pas faire autrement, je resterais avec mes deux requetes..
    Merci à toi

  6. #6
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    Bonjour Facteur,

    J'ai également de nombreuses requêtes dans mes bases, perso j'utilise une codification de nommage de ces dernières avec:
    - une racine permettant d'indiquer la famille de traitement à laquelle elle appartient,
    - un numero d'ordre
    - une description

    bon il est clair qu'il faut faire ça dès le départ, mais par la suite ça permet de s'y retrouver plus facilement
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

  7. #7
    Membre actif
    Inscrit en
    Avril 2007
    Messages
    1 239
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 239
    Points : 213
    Points
    213
    Par défaut
    bonjour pyloupylou
    Je fais exactement comme toi..j a'i codifier mes requetes afin de m'y retrouver..

  8. #8
    Membre éclairé Avatar de pyloupylou
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Janvier 2012
    Messages
    438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2012
    Messages : 438
    Points : 666
    Points
    666
    Par défaut
    comme quoi, contrairement à ce qu'on dit l'expérience est transmissible
    ----
    Il ne s'agit pas de chercher à tout savoir mais de savoir où tout chercher

    merci de penser à
    Au fait.... je ne réponds pas, moi non plus, aux mp

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

Discussions similaires

  1. faire un filtre dans une requete sql
    Par EFFLYINGJOKER dans le forum Développement
    Réponses: 1
    Dernier message: 02/04/2009, 16h22
  2. [MySQL] Comparer des info date dans une requete SQL
    Par kaygee dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2006, 21h56
  3. pb de guillemet dans une requete SQL
    Par linouline dans le forum Langage SQL
    Réponses: 1
    Dernier message: 23/12/2005, 11h38
  4. [JDBC]Caractères spéciaux dans une requete SQL
    Par frizby dans le forum JDBC
    Réponses: 2
    Dernier message: 28/11/2005, 18h01
  5. Mettre a jour les Parametres dans une requete SQL
    Par Tartar Ukid dans le forum C++Builder
    Réponses: 7
    Dernier message: 31/03/2004, 13h51

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