Excel 2007查询编辑器-大于功能

时间:2018-09-28 06:51:46

标签: sql oracle10g

我正在尝试在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

2 个答案:

答案 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,