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

MS SQL Server Discussion :

[debutant]compter les resultat d'une requete


Sujet :

MS SQL Server

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Points : 84
    Points
    84
    Par défaut [debutant]compter les resultat d'une requete
    Bonjour a tous,

    je suis un peu debutant qd a l'utilisation de sql serveur et du sql !
    Je me suis fait quelques tables dans lequel j'y ai insere des donnees !
    j'aimerais pouvoir faire des statisitques ...je pense que cela doit etre possible avec le sql !

    vola j'ai cette jointure qui fonctionne....
    qd elle s'affiche elle me liste bien ds l'analyeur de requetes les services ,les news, les personnes etc ...

    mais j'aimerais par exemple pouvoir savoir combien y'a de news dans tels service faire un count des services et des personnes afin de pouvoir faire des stats ....
    j'ai essaye en faissant un count ca ne tourne pas!
    donc comment puis je faire pour calculer le nombre de lignes total deja que retourne cette requetes et ensuite le nombre de lignes suivant les memes services et meme personnes !

    si quelqu'un pouvait m'aiguiller ....je vous remercie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    select  tn.pknews, tn.titrenews, tp.pkpersonnes, tp.nom, tp.prenom,
    ts.nomservice,ts.pkservices
     
    from 
    Tpersonnes tp
    --premiere jointure
    inner join Tnews tn on tp.pkpersonnes = tn.fkpersonnes
     
    --seconde jointure
     join Tservices ts  on ts.pkservices = tp.fkservices
    Je vous remercie
    Christophe
    La forme même des pyramides d'Egypte montre que déjà les hommes avaient tendance à en faire de moins en moins.

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    1-Postes les scriptes de création des tables concernées
    2-Poste le scripte qui te viens à l'esprit
    3-Poste le resultat que tu souhaites obtenir
    4-Poste le résultat/l'érreur rencontré

    Merci.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Points : 84
    Points
    84
    Par défaut
    Bonjour laurent,

    Je te remercie deja pour ton aide et je vais essayer d'etre clair !

    voici deja UNE PARTIE du code des creation des tables ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
     
    CREATE TABLE Tservices (
        pkservices INTEGER IDENTITY(0,1) NOT NULL,
        nomservice VARCHAR(30) NOT NULL,
        fksites INTEGER,
        PRIMARY KEY (pkservices)
    )
    GO
     
     
    CREATE TABLE Tpersonnes (
        pkpersonnes INTEGER IDENTITY(0,1) NOT NULL,
        nom VARCHAR(40) NOT NULL,
        prenom VARCHAR(40) NOT NULL,
        mdp VARCHAR(20) NOT NULL,
        mail VARCHAR(50),
        bip VARCHAR(10),
        telephone VARCHAR(20),
        photo VARCHAR(40),
        persvues INTEGER DEFAULT 0 NOT NULL,
        statut BIT DEFAULT 1 NOT NULL,
        fkservices INTEGER,
        fkcivilite INTEGER,
        fkroles INTEGER,
        PRIMARY KEY (pkpersonnes)
    )
    GO
     
    CREATE TABLE Tnews (
        pknews INTEGER IDENTITY(0,1) NOT NULL,
        titrenews VARCHAR(40) NOT NULL,
        description VARCHAR(3000) NOT NULL,
        datenews DATETIME NOT NULL,
        nbvues INTEGER DEFAULT 0 NOT NULL,
        fkpersonnes INTEGER,
        fkdescriptions INTEGER,
        PRIMARY KEY (pknews)
    )
    GO
    Voila dans ces table j'y ai mis des donnees :
    pour serives : electricite, mecanique ect ...
    personnes : des utilisateurs
    news : des exemples de news

    une personne appartient a un seul service ..
    une personne poste plusieurs news ....

    donc j'ai fait une jointure qui me permet de lister toutes les news avec les createurs de celle ci ainsi que leur appartenance au service !

    j'obtiens en gros ceci avec cette jointure :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    select tn.pknews, tn.titrenews, tp.pkpersonnes, tp.nom, tp.prenom 
    ,ts.nomservice,ts.pkservices
     
    from 
    Tpersonnes tp
    --premiere jointure
    inner join Tnews tn on tp.pkpersonnes = tn.fkpersonnes
     
    --seconde jointure
    inner join Tservices ts  on ts.pkservices = tp.fkservices
    resultat :

    pknews titrenews pkpersonnes nom
    --------------------------------------------------------------
    8 |test | 0 | Bernard
    40 | test encore |3 | admin
    54 |ytyry |4 | simple

    prenom nomservice pkservice
    -----------------------------------------------
    Christophe |Coucheuse | 0
    admin |Coucheuse | 0
    simple |Mécanique | 2

    donc voila ce que j'obtiens avec cette joitnure ...ce que je voudrais c'est pouvoir obtenir le nombres de news qu'il y'a par sercive ! et ceci afin de faire des statistiques !

    comme on peut voir y'a deux news au service coucheuse et une au service mecanique !

    voila j'espere que tu vois ce que je veux faire !
    j'y ai reflchechis soit y'a une fonction du sql qui me permet de faire cela soit je fais plusieurs requetes et je place mes resultats ds un tableau afin de pouvoir les utiliser par apres !

    qu'en penses tu ?

    je te remercie

    christophe
    La forme même des pyramides d'Egypte montre que déjà les hommes avaient tendance à en faire de moins en moins.

  4. #4
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Essaie ceci.
    Je n'ai pas testé !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT tn.titrenews, ts.nomservice,count(*) N
    FROM
           Tpersonnes tp 
            --premiere jointure 
            INNER JOIN Tnews tn 
                      ON tp.pkpersonnes = tn.fkpersonnes 
            INNER JOIN Tservices ts  
                      ON ts.pkservices = tp.fkservices 
    GROUP BY tn.titrenews, ts.nomservice
    N'oublie pas de marquer le poste résolu.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    113
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 113
    Points : 84
    Points
    84
    Par défaut you are a kin....ggggggggg
    salut salut laurent,

    Te remercie vraiment d'avoir passe du temps sur mon stress !

    ca tourne voila ma requete definitive qui me permettra donc d'afficher le nombre de news poste par services
    il ne me reste plus qu"'a cree des graphiques !

    coucheuse 15
    mecanique 10
    electrcite 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select count(*)as Nombre ,Tservices.nomservice
    from Tnews inner join Tpersonnes
    on Tnews.fkpersonnes = Tpersonnes.pkpersonnes
    inner join Tservices on
    Tservices.pkservices = Tpersonnes.fkservices
    group by Tservices.nomservice
    un grand grand merci pour tout ....tu es vraiment trop ....fort !

    Si je peux t'etre utile un jour ...n'hesite pas a me contacter ....

    Christophe
    La forme même des pyramides d'Egypte montre que déjà les hommes avaient tendance à en faire de moins en moins.

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

Discussions similaires

  1. [MySQL] Compter les resultats d'une requetes malgré un LIMIT.
    Par gregb34 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/10/2006, 20h53
  2. [MySQL] mettre les resultats d'une requete dans un select
    Par Ludo75 dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 18/01/2006, 16h19
  3. afficher les resultats d'une requete mysql sur 3 colonnes
    Par harlock59 dans le forum Requêtes
    Réponses: 7
    Dernier message: 24/12/2005, 14h38
  4. [DEBUTANT]Supprimer les espaces pour une requete
    Par tripper.dim dans le forum Oracle
    Réponses: 4
    Dernier message: 12/10/2005, 16h04
  5. [VB.NET] Compter les enregistrements d'une requete
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/10/2004, 18h46

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