none
Requete pivot dynamique ou presque ... RRS feed

  • Question

  • Bonjour,

    Je cherche a créer une requête pivot ou qqchose y ressemblant..

    J’ai 1 tables qui comporte des relultats de verifications de test

    Table Datas

    [Poduit_ID]

          ,[Nom_Test]

          ,[Num_Run]

          ,[Testeur]

          ,[Resultat]

          ,[Mesure]

          ,[Date_Time]

    L’idée serait de faire un tableau croisé dynamique de telle sorte que je puisse afficher les resultat  Nom_Test en colonne et avoir les résultat dans ce style :[Poduit_ID] ,[Nom_Test1] ,[Nom_Test2] ,[Nom_Test3] ,etc…. ,[Date_Time] ,[Num_Run] ,[Testeur]

    Produit1  ,Mesure test1, Mesure test2, Mesure test3, etc ,…Date, Num_Run,Testeur

    C’est presque facile sur access mais compliquer pour moi sur SQL 2008

    Si qqu peu me donner une piste

    Merci d’avance

    lundi 25 juin 2012 20:00

Réponses

  • Bonjour,

    Tu peux utiliser les opérateurs PIVOT et UNPIVOT :

    • L'opérateur PIVOT transforme les valeurs uniques d'une colonne de l'expression en plusieurs colonnes de sortie et effectue les agrégations nécessaires sur les valeurs de colonne restantes qui doivent figurer dans la sortie finale.
    • L'opérateur UNPIVOT effectue l'opération inverse : il transforme les colonnes d'une expression table en valeurs de colonne.

    Pour plus d'informations : http://msdn.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx

    --> En créant un rapport SSRS à partir de ta table et en utilisant le Report Item ‘Matrix’ tu pourrais visualiser le résultat attendu (Row & Column Groups).

    ++


    Business Intelligence Consultant : Microsoft Certified MCITP, MCTS and MCSA SQL Server 2008.

    mardi 26 juin 2012 08:45

Toutes les réponses

  • Bonjour,

    Tu peux utiliser les opérateurs PIVOT et UNPIVOT :

    • L'opérateur PIVOT transforme les valeurs uniques d'une colonne de l'expression en plusieurs colonnes de sortie et effectue les agrégations nécessaires sur les valeurs de colonne restantes qui doivent figurer dans la sortie finale.
    • L'opérateur UNPIVOT effectue l'opération inverse : il transforme les colonnes d'une expression table en valeurs de colonne.

    Pour plus d'informations : http://msdn.microsoft.com/en-us/library/ms177410%28v=sql.105%29.aspx

    --> En créant un rapport SSRS à partir de ta table et en utilisant le Report Item ‘Matrix’ tu pourrais visualiser le résultat attendu (Row & Column Groups).

    ++


    Business Intelligence Consultant : Microsoft Certified MCITP, MCTS and MCSA SQL Server 2008.

    mardi 26 juin 2012 08:45
  • Bonjour,

    j'ai tester avec l'opérateur PIVOT, mais c'est pas facile facile,

    je vais perseverer

    Merci

      
    mercredi 27 juin 2012 10:42
  • Bonjour,

    Tu peux aussi utiliser l'ETL de Microsoft : SSIS.

    Dans le Data Flow :

     Une interface graphique te facilite la transformation.

    ++


    Business Intelligence Consultant : Microsoft Certified MCITP, MCTS and MCSA SQL Server 2008.

    mercredi 27 juin 2012 11:06
  • Bonjour,

    je vais tester cette semaine

    Merci

    dimanche 1 juillet 2012 19:07
  • Bonjour,

    Avec PIVOT classique l'inconvénient est qu'il faut savoir le nombre de colonnes que tu vois avoir. Est-ce le cas ? Sinon il va falloir construire ta requête dynamiquement pour effectuer ce que tu cherches.

    Une deuxième question : Est-ce que ce genre de rendu ne peut pas se faire au niveau de la couche cliente ? PIVOT n'est pas forcément ce qu'il y a de plus performant avec le moteur de base de données

    ++


    MCDBA | MCITP SQL Server 2005 / SQL Server 2008 | LPI Linux 1

    mercredi 4 juillet 2012 09:30
    Modérateur