- 在這裏即時通訊嘗試做切換,然後如果在其他地方。我不知道我錯過了什麼,但這不起作用。
- 對於開關中的第一個條件,'WEEKLY',WW2和WW1是數字形式,但是是文本/字符串數據類型。因此在將它們轉換爲整數/數字數據類型之後,這些將在iff操作中使用。
- 第二個條件在開關中,'MONTHLY',WW2和WW1是月份名稱。所以目標是從月份名稱中獲取月份編號。之後,WW1,WW2用於iff操作。
=SWITCH(Parameters!date_range_type.Value = "WEEKLY", IIF((cInt(Parameters!WW2.Value) - cInt(Parameters!WW1.Value)) > 10, Parameters!WW1.Value,IIF(cInt(Parameters!WW2.Value) < 11,1,cInt(Parameters!WW2.Value) - 10)), Parameters!date_range_type.Value = "MONTHLY", IIF((cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) - cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW1.Value & "-01"))) > 10, MONTH(datepart("YYYY",today())& "-" & Parameters!WW1.Value & "-01"),IIF(cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) < 11,1,cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) - 10)) )
SSRS:如果其他內部開關不工作
如果我在「每週」報告僅意味着犯規需要開關和其他IIF條件,它做工精細。只在'MONTHLY'上運行時也是如此。
編輯
這是怎麼看起來像如果我使用IIF僅..
IIF(Parameters!date_range_type.Value = "MONTHLY",(IIF((cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) - cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW1.Value & "-01"))) > 10,MONTH(datepart("YYYY",today())& "-" & Parameters!WW1.Value & "-01"),IIF(cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) < 11,1,cInt(MONTH(datepart("YYYY",today())& "-" & Parameters!WW2.Value & "-01")) - 10))), (IIF(Parameters!date_range_type.Value = "WEEKLY",(IIF((cInt(Parameters!WW2.Value) - cInt(Parameters!WW1.Value)) > 10, Parameters!WW1.Value, IIF(cInt(Parameters!WW2.Value) < 11,1,cInt(Parameters!WW2.Value) - 10))), "0")))
,儘管所有的文字上面目前還不清楚你的期望的輸出是什麼。如果我是正確的,則選擇每週或每月給予您一個星期數字(?)或月份名稱。計算的另一端是什麼? – Jonnus
WW1和WW2都提供有相應的date_range_type列表,無論是當前的每週還是每月。對於每週類型,在進入iif之前的第一個動作是將WW1和WW2轉換爲數字,然後可以對兩個值進行數學運算。而每月,因爲提供的價值是以月份名稱,它必須轉換爲月份數然後轉換爲數字。 – user2300035
上面的表達式會輸出一個數字,表示輸出和WW2值之間的範圍總是大於或等於10,如果不是,則輸出是差值爲10且低於WW2的值。輸出取決於WW1和WW2之間的範圍這意味着WW1和WW2之間的差值。當差值大於10時,輸出將取WW1的值,如果小於11,則輸出固定爲1(因爲輸出和WW2之間的距離需要至少10個,日期範圍有效期只有1個,代表第1周或第1個月) – user2300035