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 :

problème de syntaxe avec une requête SQL


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut problème de syntaxe avec une requête SQL
    Re bonjour tout le monde,

    Inspiré par une solution proposée sur ce site, j'ai codé la requête si dessous qui me renvoie systématiquement une erreur, que voici d'ailleur :
    Msg*105, Niveau*15, État*1, Ligne*2
    Ouvrez les guillemets après la chaîne de caractères ')) AS cad_deldem
    GROUP BY art_cod'.
    Msg*102, Niveau*15, État*1, Ligne*2
    Syntaxe incorrecte vers ')) AS cad_deldem
    GROUP BY art_cod'.
    Cette erreur est provoquée par le code suivant :

    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
    declare c cursor  for select distinct cal_semaine  from tb_ooep_calendrier_annuel order by cal_semaine
    declare @pivot varchar(200), @sum varchar(200), @sql nvarchar(1000), @col int
     
    select @pivot='',  @sum=''
     
    open c
    fetch c into @col
    while @@FETCH_STATUS = 0
    	begin
    	select @sum = @sum + ' SUM(['+ cast(@col as varchar(30)) +']) AS ['+ cast(@col as varchar(30)) +'],',
    		   @pivot = @pivot + ' ['+ cast(@col as varchar(30)) +'], '
    	fetch c into @col
    	end
    close c
    deallocate  c
     
    set @sql = 'SELECT art_cod, '+ left(@sum, len(@sum))+ 
    			' FROM rq_ooep_obj_cmde_12_mois PIVOT (SUM(qte_cmde) 
    			FOR cad_deldem IN ('+ left(@pivot, len(@pivot))+ ')) AS cad_deldem 
    			GROUP BY art_cod'
     
    exec(@sql)
    .. et j'avoue ne pas voir du tout où est mon erreur alors si jamais un d'entre vous à une idée je suis preneur! Par contre je ne sais pas si vous disposez d'assez d'informations avec ce que je viens de vous donner... Alors si jamais...

    Bon, c'est l'heure de la bouffe alors bon app tout le monde et à touti

    Julius

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 58
    Points : 68
    Points
    68
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT cal_semaine  FROM tb_ooep_calendrier_annuel ORDER BY cal_semaine
    Il peut y avoir un résultat contenant des quotes?

  3. #3
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    Il peut y avoir un résultat contenant des quotes?
    A vous de nous le dire !

    Dans votre curseur, écrivez une commande PRINT @sum et PRINT @pivot pour voir d'où vient votre problème ...

    Etes vous sûr d'avoir à recourir à un curseur ?
    La commande PIVOT étant plus de la cosmétique qu'autre chose, ne vous est-il pas possible de déplacer ce traitement du côté applicatif ?

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    272
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2008
    Messages : 272
    Points : 114
    Points
    114
    Par défaut
    Bonjour bonjour, merci beaucoup pour vos réponses, elles sont très pertinentes. J'ai suivi vos conseils et fais un PRINT pour voir ce qui se passait. Ben j'aurais du le faire avant car ceci nous aurait fait économiser du temps à tous.

    Et oui l'erreur était toute bête! J'ai tout bonnement modifié mes variables textes car elle étaient trop "petites" pour contenir tout ce que je voulais y mettre. Je m'excuse donc de vous avoir dérangé pour si peu et promets de faire des PRINT plus souvent!

    Sinon ben oui un PIVOT me rend bien service ici! Il y a surement d'autres solutions (meilleures) pour arriver à mes fins mais là ça marche et j'ai tout ce qu'il me faut! Et vu que je suis un peu à la bourre.... je vais laisser ça tel quel pour l'instant.

    Merci encore et bonne semaine

  5. #5
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Je m'excuse donc de vous avoir dérangé pour si peu et promets de faire des PRINT plus souvent!
    On est sur un forum, pas en entreprise ni en cours, nous venons ici pour donner un coup de pouce et apprendre aussi

    @++

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

Discussions similaires

  1. Problème d'insertion avec une requête sql
    Par dutty_pi dans le forum JDBC
    Réponses: 5
    Dernier message: 14/03/2012, 13h58
  2. problème de syntaxe dans une requête SQL
    Par nutopia dans le forum Langage SQL
    Réponses: 4
    Dernier message: 22/11/2010, 17h17
  3. [MySQL] Problème avec une requête SQL
    Par chobol dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 11/05/2006, 12h29
  4. [VB]Problème avec une requête SQL
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 18/03/2006, 17h47
  5. [SQL] Problème de résultat avec une requête
    Par raptorman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 04/01/2006, 17h16

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