2013-03-28 272 views
0

我剛剛開始學習SSRS,並且只是在SQL Server中處於中間位置,我試圖在以下情況下計算總時間的SSRS中創建報告:SQL Server 2008 R2/SSRS 2008:服務級別報告創建

  1. 呼叫開始[時間]
  2. 呼叫進程[時間]
  3. 呼叫進程[時間]
  4. 控股[時間]
  5. 呼叫進程[時間]
  6. 按住[時間]
  7. 呼叫進度[時間]
  8. 呼叫結束[時間]

我試圖獲得的數據在:8步驟 - 步驟1 - (步驟5 - 步驟4) - (步驟7減去步驟6),這樣我就可以獲得服務級別報告呼叫的原始時間。

事情要記住:

  • 可能會或可能不會保持,
  • 可能會或可能不會是多持有,
  • 兩個持有可背對背放置。

如果我在visual basic中這樣做,我會使用一個數組並通過循環來獲取我的變量。不知道如何做到這一點,或者可以在SSRS或SQL Server 2008 R2中使用。

幫助? (如果您需要更多的信息,我很樂意提供)

+0

您可以發佈包含步驟的SQL數據結構嗎? –

+0

爲了便於迴應並保持簡單的解決方案,假設這些值並排存儲在一個表中。 IE瀏覽器。第1行[GUID] [呼叫進入],[上午8:00]第2行[GUID] [呼叫進程],[上午8:01]其中時間是呼叫中下一個事件的開始。 – user2220946

回答

0

這聽起來更像是一個SQL問題,而不是SSRS問題,如果您試圖獲得計算列。我的問題是從你的結構是這些所有點分隔列在SQL或行?如果它們是列,那就容易多了。

看來你只是從結束時間,然後一些任意數字持續時間帶走開始時間。要執行SQL操作,我將給出一個在SQL Management Studio中自提取的示例:

declare @Time1 time = '15:00', @Time2 time = '16:42', @DurationMinutes int = 34; 

select 
    @Time1 as Time1 
, @Time2 as Time2 

-- datediff gives you differences in an incremenet you specify between two values of date, time, or datetime 
, datediff(hour, @Time1, @Time2) as DifferenceInHours 
, datediff(second, @Time1, @Time2) as DifferenceInSeconds 
, datediff(minute, @Time1, @Time2) as DifferenceInMinutes 

-- Dateadd can add or subtract an increment type and value from a point specified. Be careful if you use ONLY TIME that you may go back a day and not notice it 
, dateadd(minute, - @DurationMinutes, @Time1) as Time 


, datediff(minute, @Time1, @Time2) - @DurationMinutes as TimeInMinutesLessDurationOfArbitraryTalkTime