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 :

Besoin d'infos pour une requête SQL


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut Besoin d'infos pour une requête SQL
    Bonjour,

    j'ai deux tables :

    [Categories]
    Cat_Id
    Cat_Nom


    et

    [Annonces]
    Ann_Id
    ....
    Cat_Id

    est il possible grâce à une requête SQL d'avoir le total des annonces pour chaque catégories.

    Exemple de résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    +----------------+---------+---------+
    |  Cat_Id............|     01     |     02     |
    |  Total annonce..|     14     |     23     |
    +----------------+---------+---------+
    Merci d'avance pour vos infos.

  2. #2
    Membre à l'essai
    Profil pro
    Expert technique
    Inscrit en
    Mai 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Expert technique

    Informations forums :
    Inscription : Mai 2005
    Messages : 13
    Points : 20
    Points
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    select Cat_Id, COUNT(*) as Total_annonce
    from Annonces
    group by Cat_Id
    Pour comprendre, tu as les cours de SQLpro dans la section SQL...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Merci pour l'info ! je vais de ce pas regarder les cours de SQLpro.

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    salut !

    Je viens de tester ton code il fonctionne a merveille.

    Mais j'ai une autre question .
    j'essaie de faire une jointure entre les deux tables afin d'avoir le nom de la categorie et non l'iD, mais c'est impossible pourtant mon code de jointure fonctionne sous d'autres requêtes.

    Voici la requête.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT Cat_Id, COUNT(*) AS Total_annonce 
    FROM [Annonces] 
    LEFT JOIN Categories C ON Annonces.Cat_Id = C.Cat_Id 
    GROUP BY Cat_Id 
    ORDER BY Total_annonce DESC
    Une idée ?

  5. #5
    Expert confirmé Avatar de Cybher
    Homme Profil pro
    Consultant réseaux et sécurité
    Inscrit en
    Mai 2005
    Messages
    3 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Consultant réseaux et sécurité
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 281
    Points : 4 641
    Points
    4 641
    Par défaut
    impossible? tu peux etre un peu plus précis sur le problème rencontré?
    merci

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Peut être en mettant la jointure dans le bon sens et, surtout, en identifiant l'origine de la colonne si elle est commune aux deux tables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT C.Cat_Id, COUNT(*) AS Total_annonce 
    FROM Categories C
    LEFT JOIN Annonces A ON A.Cat_Id = C.Cat_Id 
    GROUP BY C.Cat_Id 
    ORDER BY Total_annonce DESC
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Voici mon code.
    Désolé je sais que c'est pas du SQL mais cela sera plus simple pour comprendre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <asp:SqlDataSource ID="DSAnnonces" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionKikiBosse %>" 
            SelectCommand="SELECT Cat_Id, COUNT(*) AS Total_annonce FROM [Annonces] LEFT JOIN Categories C ON Annonces.Cat_Id = C.Cat_Id GROUP BY Cat_Id ORDER BY Total_annonce DESC" ProviderName="System.Data.SqlClient">
        </asp:SqlDataSource>
        <asp:DataList ID="DataList1" runat="server" DataSourceID="DSAnnonces">
            <ItemTemplate>
                Catégories :
                <asp:Label ID="CategorieLabel" runat="server" Text='<%# Eval("Cat_Nom") %>'></asp:Label><br />
                Total annonce :
                <asp:Label ID="Label1" runat="server" Text='<%# Eval("Total_annonce") %>'></asp:Label><br />
            </ItemTemplate>
        </asp:DataList>


    Le champs Cat_Nom génére un erreur du type

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'Cat_Nom'.
    C'est pour cela que je pense que la requête a un pb.

  8. #8
    Membre expert
    Profil pro
    Dév
    Inscrit en
    Juin 2007
    Messages
    1 154
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Dév

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 154
    Points : 3 667
    Points
    3 667
    Par défaut
    Juste une info dans ta requête, tu mets la jointure pr avoir le nom de la catégorie mais tu oublies de sélectionner le nom .

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    La requête de al1_24 fonctionne bien lorsque j'affiche l'idée de la catégorie mais me renvoi une erreur pour afficher le champs Cat_Nom.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT C.Cat_Id, COUNT(*) AS Total_annonce 
    FROM Categories C
    LEFT JOIN Annonces A ON A.Cat_Id = C.Cat_Id 
    GROUP BY C.Cat_Id 
    ORDER BY Total_annonce DESC

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 38
    Points : 51
    Points
    51
    Par défaut
    essaye d'ajouter A.Cat_Id a ton select.

  11. #11
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 803
    Points
    30 803
    Par défaut
    Si la colonne Cat_Nom n'est pas retournée par la requête, il est difficile de la récupérer dans le programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    SELECT C.Cat_Id, C.cat_nom, COUNT(*) AS Total_annonce 
    FROM Categories C
    LEFT JOIN Annonces A ON A.Cat_Id = C.Cat_Id 
    GROUP BY C.Cat_Id, C.Cat_nom
    ORDER BY Total_annonce DESC
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 23
    Points : 16
    Points
    16
    Par défaut
    Super ça fonctionne.

    PS : Désolé d'être aussi ignorant, avec le temps et du travail, peut-être pourrais-je être à votre hauteur !

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

Discussions similaires

  1. Besoin d'aide pour une requête SQL
    Par p_oum dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 26/11/2009, 09h29
  2. Besoin d'aide pour une requête SQL
    Par sexy-meta dans le forum Langage SQL
    Réponses: 6
    Dernier message: 08/07/2008, 14h36
  3. Besoin d'aide pour une requête SQL
    Par FranckyVegas dans le forum Langage SQL
    Réponses: 7
    Dernier message: 27/05/2008, 20h16
  4. Besoin d'aide pour une requête SQL
    Par Borami dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/11/2005, 10h33
  5. Besoin d'aide pour une Requête SQL ...
    Par Kokito dans le forum Requêtes
    Réponses: 2
    Dernier message: 07/07/2004, 11h56

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