我有一個SSRS報告之間的瀑布,在報告中,我有 開始時間的表,工作時間(持續時間),行程時間(持續時間)計算如何時間表的兩倍多(SSRS)
我0800 時間1700之間的合作 - - 使用的開始時間和持續時間
但是我還需要解決以下 時間0600之間的合作「M制定和‘結束時間’0600
- 2200 時間2200之間的合作而且不知道該在哪裏放鬆n開始
我有一個SSRS報告之間的瀑布,在報告中,我有 開始時間的表,工作時間(持續時間),行程時間(持續時間)計算如何時間表的兩倍多(SSRS)
我0800 時間1700之間的合作 - - 使用的開始時間和持續時間
但是我還需要解決以下 時間0600之間的合作「M制定和‘結束時間’0600
- 2200 時間2200之間的合作而且不知道該在哪裏放鬆n開始
您只需設置所有邏輯步驟。回答「我的持續時間從0600到0800有多少個小時?」的問題?有幾個子問題,在回答時會給你必要的值來計算你的答案:
時間段是否重疊0600-0800?
或者,0800之前的開始時間和0600之後的結束時間?
如果沒有,你的答案是0
或者,返回0
如果是,那麼0600之前的時間段開始,所以你必須忽略一段時間嗎?
或者,你將開始計算時間是你的開始時間的較大值,0600
然後,做0800後的時間結束,讓你不得不忽視一些時間?
或者,你的計算的結束時間是較輕或您的結束時間和0800
把它一起在您所選擇的語言:
If StartTime <= 0800 and EndTime >= 0600
calculate time between
if StartTime < 0600
0600
else
StartTime
and
if EndTime > 0800
0800
else
EndTime
else
0
所以,邏輯是合理的,然後在VB中工作, (Fields!Mon_Start_Secs.Value <= 28800)AND(Fields!Mon_End_secs.Value => 21600),(iif(Fields!Mon_Start_Secs.Value <21600,21600,Fields!Mon_Start_Secs。值))+(iif(Fields!Mon_End_secs.Value> 28800,28800,Fields!Mon_End_secs.Value)),0)' 我得到一個表達式期望的錯誤BC30201 –
@MichaelAuty你爲什麼要在SSRS表達式中這樣做,不是你的源查詢? – iamdave
你能分享數據集的DDL,一些樣本數據和預期的輸出?看看幫助頁面:[如何創建一個最小化,完整和可驗證的示例](http://stackoverflow.com/help/mcve) – NickyvV