Il y a plusieurs façons de calculer le N° de semaine. J’y ai déjà été confronté il y a quelques années.
Il y a une norme ISO qui est notamment utilisée par les calendriers papier (http://fr.wikipedia.org/wiki/Numérotation_ISO_des_semaines).
On peut avoir ce comportement dans Outlook ; il faut le configurer ici :
Le problème se pose quand on doit l’utiliser dans du code. J’ai notamment eu le cas dans un rapport Reporting Services.
J’utilise l’expression suivante :
DatePart(“ww”, Fields!MaDate.Value)
Or, cette instruction ne se base pas sur la norme ISO mais démarre au 1er janvier.
En T-SQL, on peut avoir le bon calcul en changeant la constante :
SELECT DATEPART(ISOWK, '2010-01-04')
Mais cette constante n’existe pas dans le moteur d’expression de Reporting Services…
Donc il vous faudra vous baser sur un bout de code embarqué.
Et hop, une remontée de plus sur Connect.
Mots-clefs : Reporting Service, SSRS
30 décembre 2009 à 19:55 |
Et si tu ajoutais une col calculée à ta table
Ou bien une vue qui ajoutes les infos que tu veux.
Pfff pas si puissant que ça SSRS.
2 janvier 2010 à 10:55 |
Oui, c’est une solution, laisser SQL Server le calculer et l’avoir comme champ dans le DataSet.
Mais bon, si tu es en MDX et que tu ne l’as pas dans ta dimension Temps.