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

Développement SQL Server Discussion :

Requêtes SQL imbriquées


Sujet :

Développement SQL Server

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Requêtes SQL imbriquées
    Bonjour

    Je débute sur SQL Server et j'ai besoin d'analyser le contenu d'une table. Je m'explique.

    Ma table s'organise comme suit:

    |Societe|Departement|Activite

    ce que j'aimerai c'est obtenir pour chaque type d'activité, le compte des data disponible par département:

    |Activite|Departement_1|Departement_2|...|Departement_n

    J'ai essayé pas mal de chose dont les requête imbriquée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Select ACTIVITE, COUNT(*) as NBRE from FICHIER_CLIENT
        where id_dep IN(select distinct id_dep from FICHIER_CLIENT group by id_dep)  
            group by ACTIVITE
    Mais je n'obtiens pas ce que je cherche.

    Merci d'avance

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    As-tu absolument besoin d'avoir chaque département en colonne ?

    Si non, voici une proposition :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT [Activite]
          ,[DepartementId]
          ,COUNT(*) AS Nb
    FROM [dbo].[FICHIER_CLIENT]
    GROUP BY Activite, [DepartementId]
    ORDER BY Activite ASC
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    As-tu absolument besoin d'avoir chaque département en colonne ?

    Si non, voici une proposition :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT [Activite]
          ,[DepartementId]
          ,COUNT(*) AS Nb
    FROM [dbo].[FICHIER_CLIENT]
    GROUP BY Activite, [DepartementId]
    ORDER BY Activite ASC
    super requête DotNetMatt, je la garde sous la main car elle pourrai servir cependant j'ai effectivement besoin d'avoir les departement en colonnes. j'en viens à penser que le seul moyen d'y arriver est de le faire via une fonction. qu'en pense tu?

  4. #4
    Membre chevronné
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Points : 1 806
    Points
    1 806
    Par défaut
    Si vous connaissez à l'avance les départements, un pivot manuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT [Activite]
              ,SUM (CASE WHEN DepartementId = id1 THEN 1 END) AS Nb_Departement1
              ,SUM (CASE WHEN DepartementId = id2 THEN 1 END) AS Nb_Departement2
    [...]
    FROM [dbo].[FICHIER_CLIENT]
    GROUP BY Activite
    Et si vous ne les connaissez pas, alors il va falloir :
    1. Faire le pivot dans votre application.
    2. Construire dynamiquement la requête pour générer le pivot (en commençant par un select sur la table des départements et en bouclant dessus).

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2013
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Rei Ichido Voir le message
    Si vous connaissez à l'avance les départements, un pivot manuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT [Activite]
              ,SUM (CASE WHEN DepartementId = id1 THEN 1 END) AS Nb_Departement1
              ,SUM (CASE WHEN DepartementId = id2 THEN 1 END) AS Nb_Departement2
    [...]
    FROM [dbo].[FICHIER_CLIENT]
    GROUP BY Activite
    Et si vous ne les connaissez pas, alors il va falloir :
    1. Faire le pivot dans votre application.
    2. Construire dynamiquement la requête pour générer le pivot (en commençant par un select sur la table des départements et en bouclant dessus).


    Merci Rei Ichido je vais essayer ca je vous tiens au courant; merci encore

Discussions similaires

  1. Requêtes SQL imbriquées
    Par zpliz dans le forum SQL
    Réponses: 5
    Dernier message: 25/03/2010, 09h58
  2. [MySQL] Requête sql imbriquée
    Par PIEPLU dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 20/01/2010, 08h44
  3. Requête SQL imbriqué, 3 tables, plusieurs colonnes
    Par opacho dans le forum Requêtes
    Réponses: 3
    Dernier message: 27/07/2009, 09h45
  4. Requête SQL imbriquée
    Par cecile15 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 20/05/2009, 10h39
  5. Requête SQL imbriquées
    Par Fanette85 dans le forum ASP.NET
    Réponses: 20
    Dernier message: 05/10/2007, 14h12

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