Porblème lecture Variable SQL SERVER 2005

Fermé
OSTIE127 - 27 mai 2009 à 21:53
Sacha79 Messages postés 29 Date d'inscription samedi 27 juin 2009 Statut Membre Dernière intervention 5 février 2010 - 7 juil. 2009 à 10:38
Bonjour,

J'ai une requête dnt voici le code :



DECLARE @mois varchar(2000)
set @mois = '[31-12-2008],[31-01-2009]'
SELECT @mois;

with test as (SELECT 'PS_731_730' as CellName, CONVERT(VARCHAR,RDate,105) as mois, round((SUM(MV)/1000),1) AS MarketValue
FROM (
SELECT RDate, PositionCdp, Portefeuille, Emetteur, SUM(MarketValue) AS MV
FROM dbo.POSITION_CDP
GROUP BY RDate, PositionCdp, Portefeuille, Emetteur
HAVING RDate between '2008-12-31' AND '2009-01-31' AND Emetteur = N'cdpq' AND (PositionCdp = N'GEN CD CDP US' OR
PositionCdp like 'GEN CD CDPQ %') AND SUM(MarketValue) > 0
) AS POSITIONS
group by rdate
)

select *
from test
PIVOT(
SUM(MarketValue) for mois in (@mois)
)as pvt



et voici le message que m'affiche SQL SERVER lorsque je click sur Execut

Msg 102, Level 15, State 1, Line 19
Incorrect syntax near '@mois'.

Je n'ai aucune idée pourquoi il me dit cela, alors qu'il ne semble pas y avoir de probléme de synthaxe.

Si quelqu'un à une idée je suis à l'écoute.

Merci
A voir également:

1 réponse

Sacha79 Messages postés 29 Date d'inscription samedi 27 juin 2009 Statut Membre Dernière intervention 5 février 2010 8
7 juil. 2009 à 10:38
Ca ne peut pas fonctionner tel quel : tu essais de trouver les éléments d'une liste et non un seul element. Je te suggère donc, d'ajouter un traitement te permettant de transformer ta liste en table temporaire comme suit :

http://ww11.xoowiki.com/Article/SQL-Server/elements-dune-liste-85.aspx
0