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ête Pivot


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Août 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 35
    Par défaut Requête Pivot
    *** Bonjour, ***

    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
    PROCEDURE [dbo].[SPX_MYK]
         @PeseeDateDebut datetime,
    	 @PeseeDateFin datetime,
         @ProduitDebut int,
         @ProduitFin int,
         @rub1 varchar(50),
         @rub2 varchar(50),
         @rub3 varchar(50),
         @rub4 varchar(50),
         @rub5 varchar(50)
    AS
    BEGIN
    	-- SET NOCOUNT ON added to prevent extra result sets from
    	-- interfering with SELECT statements.
    	SET NOCOUNT ON;
     DECLARE @PivotColumnHeaders  VARCHAR(1000)
     SELECT @PivotColumnHeaders  =''+ @rub1 +','+@rub2+','+@rub3+','+@rub4+','+@rub5+''
     
     SELECT *
       FROM (
         SELECT          tblPesee.PeseeID, tblPesee.peseePoidsNet, CONVERT(varchar(10), tblPesee.PeseeDateEntree, 108) AS arrive, CONVERT(varchar(10), tblPesee.PeseeDateSortie, 108) 
                          AS depart, DetailLivraison.SocieteID, tblPesee.ProduitID, CritereNotation.CritereNotationLibelle, Notation_Pesee.Note, tblPesee.VehiculeID, CONVERT(varchar(10), 
                          tblPesee.PeseeDateEntree, 103) AS entree, CONVERT(varchar(10), tblPesee.PeseeDateSortie, 103) AS sortie
         FROM             Notation_Pesee INNER JOIN
                          DetailLivraison INNER JOIN
                          tblPesee ON DetailLivraison.PeseeID = tblPesee.PeseeID AND DetailLivraison.SiteID = tblPesee.SiteID ON Notation_Pesee.PeseeID = tblPesee.PeseeID AND 
                          Notation_Pesee.SiteID = tblPesee.SiteID INNER JOIN
                          CritereNotation ON Notation_Pesee.CritereNotationID = CritereNotation.CritereNotationID
     WHERE (              dbo.FonctionSurEtatDate(tblPesee.PeseeDateSortie,@PeseeDateDebut,@PeseeDateFin)=1 AND dbo.FonctionSurEtat(tblPesee.ProduitID,@ProduitDebut,@ProduitFin)=1)                      
    GROUP BY              tblPesee.PeseeID, tblPesee.peseePoidsNet, tblPesee.PeseeDateEntree, tblPesee.PeseeDateSortie, DetailLivraison.SocieteID, CritereNotation.CritereNotationLibelle, Notation_Pesee.Note,
                          tblPesee.VehiculeID, tblPesee.ProduitID, tblPesee.AgentDeSuppression, tblPesee.DateSuppression, tblPesee.RaisonSuppressionID
    HAVING               (tblPesee.RaisonSuppressionID IS NULL) AND (tblPesee.DateSuppression IS NULL) AND (tblPesee.AgentDeSuppression IS NULL)
       ) AS PivotData
       PIVOT (
         SUM(Note)
         FOR CritereNotationLibelle IN (''@PivotColumnHeaders'')
       ) AS PivotTable
     
    END
    Voici l'erreur qu'on me génère :
    Msg*102, Niveau*15, État*1, Procédure*SPX_MYK, Ligne*46
    Syntaxe incorrecte vers ''.
    Merci de m'aider.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    merci d'indenter votre requête et de la mettre dans une balise CODE.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    Veuillez m'aider
    C'est un ordre?

    S'il vous plait ne fait de mal à personne...


    Au passage vous utilisez un peu partout '' dans votre code... celà ne correspond pas à grand chose en TSQL

    Par exemple ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    IN (''@PivotColumnHeaders'')

  4. #4
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    FOR CritereNotationLibelle IN (''@PivotColumnHeaders'')
    Cette syntax est inccorecte.

    Par ailleurs, vous ne pouvez pas pas utiliser de variable pour les noms des colonnes dans un pivot.
    Vous pouvez vous orienter vers un query dynamique pour se faire.

Discussions similaires

  1. Requête pivot avec création d'une colonne "total"
    Par minijim dans le forum Langage SQL
    Réponses: 7
    Dernier message: 10/11/2010, 21h09
  2. Sql server requête pivot sans somme
    Par merlin3d dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/03/2010, 11h19
  3. [postgreSQL] requête pivot
    Par cedrix57 dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/02/2010, 23h14
  4. Requête Pivot pour débutant
    Par arthuro45 dans le forum Développement
    Réponses: 4
    Dernier message: 08/02/2010, 15h05
  5. Requêtes pivots sous MS-SQL Server
    Par Thony_7 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 11/05/2007, 16h45

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