簡體   English   中英

SSRS報告顯示不同日期的數據

[英]SSRS Report shows data for different dates

如果我刪除sessiondate字段,我的報告(計算出勤百分比)將顯示匯總數據。

但是我需要它,因為用戶需要每月運行它(當前我們手動運行查詢)

因此,我的查詢中有基於開始和結束日期參數的sessiondate字段

查詢:

SELECT sessiondate,
       Possible,
       Present,
       SUM(Possible_Duration)                      AS Possible_Duration,
       SUM(Present_Duration)                       AS Present_Duration,
       CASE WHEN SUM(Present_Duration) = 0 THEN 0
       ELSE
         SUM(Present_Duration) / SUM(Possible_Duration) END AS Attendance,
       SUM(CASE WHEN Mark = 'L' THEN 1 ELSE 0 END) AS Late_Mark,
       SUM(Possible)                               AS Possib,
       SUM(CASE WHEN Mark = 'A' THEN 1 ELSE 0 END) AS Authorised_absence,
       SUM(CASE WHEN Mark = '/' THEN 1 ELSE 0 END) AS Present_,
       SUM(CASE WHEN Mark = 'O' THEN 1 ELSE 0 END) AS Absent_fromClass
  FROM Table
 WHERE Sessiondate >= @startdate
   AND Sessiondate <= @Enddate
 GROUP BY Session_dt

查詢結果:

--------------------------------------
 col1 | col2 | Session_dt | attendance 
--------------------------------------
   A  |   B  | 01/01/2015 |     100
   A  |   B  | 03/01/2015 |      69
   A  |   B  | 05/01/2015 |     100

預期結果:

--------------------------
 col1 | col2 | attendance 
--------------------------
   A  |  B   |     89.3

現在,我只在查詢中指定日期並運行報告。 有什么辦法可以使用參數值來實現此目的?

該查詢將返回當月第一天和最后一個日期之間的數據,然后您只需要計划報表在每個月末運行即可:

select *
where [Date] between
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(GETDATE())-1),GETDATE()),101) --first date
and 
CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,GETDATE()))),DATEADD(mm,1,GETDATE())),101) --last date

您可以將一個參數作為@monthNo放在您的SSRS報告中,並僅顯示1月-12月的月份列表,其值僅為1 -12。

在SQL方面,您可能會收到用戶選擇的月份號,並按以下方式使用它:

declare @monthNo as char(2) = '1'; -- remove this from your SQL

declare @firstDate as datetime;
declare @lastDate as datetime;


select  @firstDate = CONVERT(datetime,CONVERT(CHAR(4),year(getdate())) + '-' + @monthNo + '-1');
select  @lastDate = dateadd(day,-1,(dateadd(month,1,@firstDate)));

select *
from [table]
where [date] between @firstDate and @lastDate;

現在您可以在任何月份運行報告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM