簡體   English   中英

如何使用 case 語句中的函數返回值以選擇每個函數的 MAX?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM