我正在尝试在Excel 2007 SQL数据库查询编辑器中编辑一些代码。
当前代码为(仅摘录):
(Select NVL(Sum(Shut_Hours),0)
From Shut_Hrs_Calc SHC2
Where BDT.Prod_Day=SHC2.Prod_Day And SHC2.Equipment_ID = 1006) As CD1C,
该代码仅应按日期返回表中每个单元格(Shut_Hrs_Calc)中小于或等于24小时的关闭时间,但是它返回的值大于24小时。我想编辑上面的代码,以便对于任何大于24的Shut_Hours,它在表的该单元格中返回值24。如果不大于24,则返回该值。如果为null,则返回0(因为当前代码已经这样做了)。
我们将不胜感激,在此先感谢您。
下表示例:
MAINT_DATE CD1C
27/09/2018 0
28/09/2018 0
29/09/2018 0
30/09/2018 0
1/10/2018 0
2/10/2018 0
3/10/2018 0
4/10/2018 0
5/10/2018 0
6/10/2018 0
7/10/2018 0
8/10/2018 0
9/10/2018 0
10/10/2018 0
11/10/2018 0
12/10/2018 0
13/10/2018 0
14/10/2018 13
15/10/2018 25
16/10/2018 35
17/10/2018 24
18/10/2018 24
19/10/2018 16
答案 0 :(得分:0)
您需要案例说明,例如:
(Select case when sum(Shut_Hours) > 24 then 24
else nvl(sum(shut_hours), 0)
end
From Shut_Hrs_Calc SHC2
Where BDT.Prod_Day=SHC2.Prod_Day And SHC2.Equipment_ID = 1006) As CD1C
答案 1 :(得分:0)
您可以使用least()
和coalesce()
进行此操作:
(Select least(coalesce(Sum(Shut_Hours), 0), 24)
From Shut_Hrs_Calc SHC2
Where BDT.Prod_Day = SHC2.Prod_Day And
SHC2.Equipment_ID = 1006
) As CD1C,