2011-06-13 112 views
1
select docket_number,aging from (
    select docket_number, 
     sum(cast(dateDiff("mi",assigned,coalesce(completed,getdate()))/60.00 as decimal(20,2))) aging 

    from ft_details_h 

    group by docket_number 
)a where aging case when @hh <= 72 then <= @hh else > @hh end 

嗨我怎樣才能滿足其中語句當參數@hh小於或= 72,其中聲明應當老化< = @hh並且當老化大於72 where語句應老化> @hh情況下,當在語句參數

+0

有與這種情況的「死區」。不知道'老化'是什麼類型,但我們假設它是'int'。同時讓'aging = 73'和'@hh = 73'。這個「老化」會被選中嗎?讓我們來看看。 '@hh <= 72'?不,73是*不*小於或等於72.'老化> @ hh'? 73不是*大於73,所以再次** **不**。我認爲,它應該是(使用原始的僞代碼)'當@hh <= 72然後<= @hh else > = @hh結束時出現老化情況。 – 2011-06-13 11:57:48

回答

0

你可以做這樣的事情:

where 
    (@hh <= 72 and aging <= @hh) or 
    (@hh > 72 and aging > @hh) 
0

當你寫你的問題,請嘗試:

where (aging <= @hh And @hh <= 72) Or 
     (aging > @hh And aging > 72) 

但是我懷疑你有一個錯字,實際上意味着

where (aging <= @hh And @hh <= 72) Or 
     (aging > @hh And @hh > 72)