2017-02-23 44 views
1
select maintance_action_date,add_months(maintenance_action_date,3) 
as Service_By 
from maintenance 
where bike_no = 1; 

到目前为止,这个查询显示我所有的时间,自行车已经过维护,然后增加3个月。不过,我希望它显示最近的日期并添加三个月。任何人都知道我会如何做到这一点。最大和增加月份的SQL不工作

+0

你能添加一些示例数据? –

+0

我的坏,不小心加了它。现在修好。 –

回答

0

你可以使用MAX()函数获得最近日期

select max(maintance_action_date) ,add_months(max(maintenance_action_date),3) 
as Service_By 
from maintenance 
where bike_no = 1; 

或使用试用中介选择

select my_date, add_months(t.my_date,3) 
from ( 
    select max(maintance_action_date) my_date 
    from maintenance 
    where bike_no = 1 
    ) t 
+0

说回这个 “ORA-00937:不是单组分组函数 00937. 00000 - ”不是一个单一群组功能“ *原因: *动作: 行错误:293列:8” –

+0

@TommySmall答案更新...希望是有用的 – scaisEdge

+0

是的,这是伟大的谢谢:) –

0

只需使用max()功能:

select max(maintance_action_date), 
     add_months(max(maintenance_action_date), 3) as Service_By 
from maintenance 
where bike_no = 1; 
+0

回顾这个“ORA-00937:不是单组功能00937. 00000 - ”不是单组功能“*原因:*操作:错误在行:293列:8” –

+0

@TommySmall。 。 。这个查询不应该产生那个错误。 'select'中没有未聚集的列。 –