[英]How do I return a value using a function within a case statement to choose the MAX of each function?
我有一個查詢,我正在使用函數計算多個日期/時間之間的差異。 它以分鍾為單位返回 2 個日期之間的時間(第一行是 imported_date 和 create_date,第二行是picked_date 和packed_on_date)。
示例如下: dbo.WorkTime(o.imported_date,pkd.create_date) dbo.WorkTime(pkd.picked_date, hums.packed_on_date)
我想要的結果是根據花費時間最長的過程為每一行返回一個狀態。 如果我在 excel 中這樣做,我會創建一個 IF 語句。
有沒有辦法讓我寫一個 case 語句或其他什么東西,它會根據每個函數處理時間的 MAX 返回一個狀態?
試試這個 As 查詢
select ( case when dbo.WorkTime(o.imported_date,pkd.create_date) >=
dbo.WorkTime(pkd.picked_date, hums.packed_on_date) then
dbo.WorkTime(o.imported_date,pkd.create_date) else
dbo.WorkTime(pkd.picked_date, hums.packed_on_date) end ) MaxTime
或者聲明一個變量
declare @MaxTime float;
Set @MaxTime = ( case when dbo.WorkTime(o.imported_date,pkd.create_date) >=
dbo.WorkTime(pkd.picked_date, hums.packed_on_date) then
dbo.WorkTime(o.imported_date,pkd.create_date) else
dbo.WorkTime(pkd.picked_date, hums.packed_on_date)
end ) MaxTime
return @MaxTime;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.