首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何选择数字随日期上升而下降的行

如何选择数字随日期上升而下降的行
EN

Stack Overflow用户
提问于 2015-09-04 11:23:22
回答 5查看 84关注 0票数 5

如果我在维修店有一个程序,并且我想在我的RepairOrder表中选择所有的汽车,其中后一个维修单的里程小于前一个维修单的里程,我如何构建那个select语句?

代码语言:javascript
运行
复制
ID  VehicleID  Mileage  RepairDate
01  1          18425    2013-08-13
02  1          28952    2013-02-26
03  2          22318    2012-08-27
04  3          21309    2012-08-07
05  3          16311    2012-02-27
06  3          16310    2012-02-11
07  4          11098    2011-03-23
08  5          21309    2012-08-07
09  5          16309    2012-02-27
10  5          16310    2012-02-11

在本例中,我应该只选择VehicleID 1,因为它的RepairDate大于前一行,但里程小于前一行。同样的车辆也可能有3行,中间日期的里程数为3或5000000,我还需要选择这些VehicleID。

使用LEAD()函数的结果

代码语言:javascript
运行
复制
ID  RepairDate  Mileage
25  2011-12-23  45934
48  2009-02-26  13
48  2009-04-24  10
71  2011-07-26  31163
71  2015-01-13  65656
EN

回答 5

Stack Overflow用户

发布于 2015-09-04 12:19:28

这是为sql 2014+使用LEAD()函数的好地方。

代码语言:javascript
运行
复制
WITH NextM as (
    SELECT 
       * , 
       LEAD(Mileage, 1, null) over (partition by VehicleID order by RepairDate) NextMileage
    FROM RepairOrder
) 
SELECT *
FROM NextM
WHERE Mileage > NextMileage

我的解决方案会显示所有列,这样您就可以检查哪些行有问题。

此外,我避免使用distinct,因为正如OP建议的那样,同一辆车可能会有几个错误,这样你就可以看到所有的错误。

票数 2
EN

Stack Overflow用户

发布于 2015-09-04 11:27:08

它的效率不是很高,但您可以进行成对选择

代码语言:javascript
运行
复制
select t1.VehicleID 
from table t1, table t2 
where t1.VehicleId = t2.VehicleId 
AND t1.Mileage > t2.Mileage 
AND t1.RepairDate < t2.RepairDate

可能有一个更好的解决方案,因为成对选择变得非常慢,但这应该是按原样工作的。

票数 0
EN

Stack Overflow用户

发布于 2015-09-04 11:27:46

代码语言:javascript
运行
复制
select distinct RO.VehicleID 
from RepairOrder RO 
where exists(select * 
             from RepairOrder 
             where ID != RO.ID 
             and VehicleID = RO.VehicleID and RepairDate > RO.RepairDate 
             and Mileage < RO.Mileage);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32389564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档