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 :

GROUP BY inefficace sur un PIVOT


Sujet :

Développement SQL Server

  1. #1
    Membre habitué
    GROUP BY inefficace sur un PIVOT
    Bonjour,

    Une fois de plus je m'en remets à vous..

    Le résultat d'un PIVOT me donne comme résultat 2 lignes comme suit



    Je ne parviens à en faire qu'une seul ligne..
    Une idée ?? MERCI

    Voici ma requette : (j'ai volontairement gardé que les 2 première colonnes et mis en commentaire le reste)
    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
    SELECT 
    [101], [102]--, [103], [104], [105], [106], [107], [108], [109], [110], [111], [112], [113], [201], [202], [203], [204], [205], [206], [207]
    --, [208], [209], [210], [211], [212], [213], [301], [302], [303], [304], [305], [306], [307], [308], [309], [310], [311], [312], [313]
    FROM
    	(
    	SELECT P.PAN_ID, P.PAN_CIN, P.PAN_EMPL FROM  [DBO].[PANIER_CIN] P
    		join [dbo].[TTH_LOT] T
    		on T.TTH_PAN_ID = P.PAN_ID
    	WHERE CONCAT(T.TTH_LOT_LETTRE, T.[TTH_LOT_NUM]) = 'AA2' 
    	) Src
     
    pivot
    	(
    	MIN(PAN_ID)
    	FOR PAN_EMPL IN ([101], [102])--, [103], [104], [105], [106], [107], [108], [109], [110], [111], [112], [113], [201], [202], [203], [204], [205], [206], [207]
    					--, [208], [209], [210], [211], [212], [213], [301], [302], [303], [304], [305], [306], [307], [308], [309], [310], [311], [312], [313]) 
    	) PivotTable
     
    GROUP BY 
    [101], [102]--, [103], [104], [105], [106], [107], [108], [109], [110], [111], [112], [113], [201], [202], [203], [204], [205], [206], [207]
    --, [208], [209], [210], [211], [212], [213], [301], [302], [303], [304], [305], [306], [307], [308], [309], [310], [311], [312], [313]

  2. #2
    Expert confirmé

  3. #3
    Membre habitué
    Si je supprime le GROUP BY...



    J'ai toujours besoin d'un coup de pouce.. merci..

  4. #4
    Modérateur

    bonjour,

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    SELECT MIN([101]) as [101], MIN([102]) AS [102] ...


    Par ailleurs, vous devriez séparer votre filtre en deux, afin de favoriser l'utilisation d'index (plutôt que de faire le test sur le résultat d'un CONCAT).

  5. #5
    Membre habitué
    LOL..

    c'est ce que je suis en train de faire..!!

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT MIN([101]), MIN([102]), MIN([103]), MIN([104]), MIN([105]), MIN([106]), MIN([107]), MIN([108]), MIN([109]), MIN([110]), MIN([111]), MIN([112]), MIN([113])
    , MIN([201]), MIN([202]), MIN([203]), MIN([204]), MIN([205]), MIN([206]), MIN([207]), MIN([208]), MIN([209]), MIN([210]), MIN([211]), MIN([212]), MIN([213])
    , MIN([301]), MIN([302]), MIN([303]), MIN([304]), MIN([305]), MIN([306]), MIN([307]), MIN([308]), MIN([309]), MIN([310]), MIN([311]), MIN([312]), MIN([313])


    MErci les copains

###raw>template_hook.ano_emploi###