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 :

"Fusionner" deux lignes d'un SELECT


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Points : 60
    Points
    60
    Par défaut "Fusionner" deux lignes d'un SELECT
    Bonjour à tous!


    Je travaille sur des graphiques sous ASP.NET et j'essaie d'obtenir une ligne avec toutes les informations nécessaires.

    Pour pouvoir différencier le nombre d'articles créer et le nombre de réparations sur ces articles j'ai créer deux colonnes "fab" et "rep" lors de mon SELECT.


    • Voici ma requête SQL.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT NoArticle ,case when T_type.pk_type = 15 then count(T_type.pk_type ) end as rep, case when T_type.pk_type = 4 then count(T_type.pk_type) end as fab FROM 
    T_Evenements from [...] where NoArticle like '660 300 002'


    N'y as t'il pas un moyen de pouvoir rejoindre les valeurs sur la MEME ligne par rapport au numéro d'article?

    ça serait vraiment trop beau .

    Merci pour toute aide.

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    Une solution (A voir au niveau performance) :

    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
    41
    DECLARE @T_Evenements TABLE
    (
     NoArticle VARCHAR(50),
     pk_type INT
    );
     
    INSERT INTO @T_Evenements VALUES ('660 300 002',15);
    INSERT INTO @T_Evenements VALUES ('660 300 002',4);
    INSERT INTO @T_Evenements VALUES ('660 300 002',15);
    INSERT INTO @T_Evenements VALUES ('660 300 002',4);
    INSERT INTO @T_Evenements VALUES ('660 300 002',15);
     
    SELECT 
    	T1.NoArticle,
    	T1.rep,
    	T2.fab
    FROM
    (
    	SELECT
    		NoArticle,
    		COUNT(*) AS rep
    	FROM @T_Evenements
    	WHERE NoArticle = '660 300 002'
    	 AND pk_type = 15
    	GROUP BY NoArticle
    ) AS T1
    INNER JOIN 
    (
    	SELECT
    		NoArticle,
    		COUNT(*) AS fab
    	FROM @T_Evenements
    	WHERE NoArticle = '660 300 002'
    	 AND pk_type = 4
    	GROUP BY NoArticle
    ) AS T2
    ON T1.NoArticle = T2.NoArticle
     
    -----------------------------------
    --    NoArticle     |  rep   |   fab   |
    -- 660 300 002        3         2
    ++

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2009
    Messages : 81
    Points : 60
    Points
    60
    Par défaut
    Salut mikedavem,

    ... que dire à part que tu es un dieu XD.

    Merci mille fois! Au point ou j'en étais les perfs ne sont pas trop importante. ça a l'air d'aller plutôt bien.

    Encore merci! J'aurais jamais penser à faire des sous-requêtes avec un INNER JOIN pour ça.

    Bonne journée

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

Discussions similaires

  1. Syntaxe VBA pour fusionner deux lignes
    Par Benjycool dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/02/2009, 09h13
  2. [XSL:FO] fusionner une cellule sur deux lignes.
    Par Luc Hermitte dans le forum XSL/XSLT/XPATH
    Réponses: 6
    Dernier message: 03/07/2008, 11h33
  3. Réponses: 3
    Dernier message: 06/11/2007, 11h16

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