SSRS Expression - Rechercher le Premier Jour de la Semaine à Partir de la Semaine de la valeur

J'ai eu un rapport SSRS qui retourne l'identifiant de connexion de comptage pour nos VDI Piscines ventilées par semaine.
Par exemple pour le mois de janvier se lire comme suit:

     Week                # of Logins  
2015_JANUARY_WEEK_NO_1       3  
2015_JANUARY_WEEK_NO_2       49

Je suis à l'aide de la Semaine de la colonne de lien vers un autre rapport qui affiche de la semaine sélectionnée de connexions donc, je dois obtenir le premier jour de la semaine sélectionnée et le dernier jour de la sélection de la semaine et de les transmettre à l'autre rapport en tant que paramètres.

Je sais comment obtenir de traction de l'année et de la semaine n ° de la Semaine de la colonne.

=Mid(Fields!Week.Value,1,4) 

me donne de l'année et
=Trim(Mid(Fields!Week.Value,Len(Fields!Week.Value),Len(Fields!Week.Value)))

me donne la semaine.

J'ai trouvé ce T-SQL qui fonctionne:

DECLARE @WeekNum INT
          , @YearNum char(4);

SELECT @WeekNum = 2 
     , @YearNum = 2015  
-- once you have the @WeekNum and @YearNum set, the following calculates the date range. 

SELECT DATEADD(wk, DATEDIFF(wk, 6, '1/1/' + @YearNum) + (@WeekNum-1), 6) AS StartOfWeek;   
SELECT DATEADD(wk, DATEDIFF(wk, 5, '1/1/' + @YearNum) + (@WeekNum-1), 5) AS EndOfWeek; 

mais je ne peux pas comprendre comment le transformer en une expression qui ne renvoie pas d'erreur.

C'est ce que j'ai obtenu jusqu'à présent:

=DateAdd("w", DateDiff("w", 6, '1/1/' + (Mid(Fields!Week.Value,1,4))) + (Trim(Mid(Fields!Week.Value,Len(Fields!Week.Value),Len(Fields!Week.Value)))
- 1), 6)

et lorsque j'essaie d'exécuter le rapport dans la vue de conception, il renvoie une Expression de l'erreur attendue.

Modifier
Désolé, je suppose que je devrais ai posté une requête d'origine c'est de peupler le rapport. Ici, c'est ci-dessous:

SELECT Convert(varchar(20),UPPER(DATENAME(YEAR, Time)))
    +'_'+CONVERT(varchar(20),UPPER(DATENAME(MONTH, Time)))
    +'_WEEK_NO_'+CONVERT(varchar(10),(DAY(Time) 
    + (DATEPART(DW, DATEADD (MONTH, DATEDIFF (MONTH, 0, Time), 0))-1) -1)/7 + 1) as 'Week'
    , Count(DISTINCT SUBSTRING(ModuleAndEventText,LEN('User ') + 2
    , CHARINDEX(' requested', ModuleAndEventText) - LEN('User ') - 2)) as WeekCount
  FROM VE1_UserLogins
WHERE DesktopId = @Pool
AND ([Time] BETWEEN (@StartDate) and (DATEADD(ms, -1, @EndDate +1)))
GROUP BY Convert(varchar(20),UPPER(DATENAME(YEAR, Time)))
    +'_'+CONVERT(varchar(20),UPPER(DATENAME(MONTH, Time)))
    +'_WEEK_NO_'+CONVERT(varchar(10),(DAY(Time) 
    + (DATEPART(DW, DATEADD (MONTH, DATEDIFF (MONTH, 0, Time), 0))-1) -1)/7 + 1),YEAR(Time),MONTH(Time)
ORDER BY YEAR(Time), MONTH(Time), Week
  • Qu'est-ce que votre Fields!Week.Value valeur . Qu'est-ce que c'est le type de données ?
  • Comment est-ce Mid(Fields!Week.Value,Len(Fields!Week.Value),Len(Fields!Week.Value)) va fonctionner comme vous obtenez Mid de à partir de c'est la fin de la longueur est la longueur de la chaîne
  • Qui me troublait bien mais quand j'ai essayé codeMilieu des Champs!Semaine.Valeur,Len(Champs!Semaine.Valeur)-1,Len(Champs!Semaine.Valeur)), il était de retour le trait de soulignement avant le nombre.
  • quelle est la valeur de votre DATENAME champ
  • DATENAME est intégré dans la variable SQL. Il se met automatiquement dans 1 janvier, 2 février, etc.
  • Désolé, je veux dire, Quelle est la valeur d' Time domaine détient
  • Le temps tient la valeur de lors de la connexion de l'utilisateur... par exemple. 2014-09-15 11:31:10.383
  • J'ai mis à jour la réponse, Si cela vous aide, veuillez accepter donc, la question peut être fermé .

InformationsquelleAutor Mike Horton | 2015-01-23