sql - 仅提取最新的状态行
问题描述
我的表中有三个订单状态,分别为Entered、Aw Appr 和 Completed。Entered和Completed各有一行,而AW Appr每周重复一次,直到订单完成。现在所有三种状态,但只有一次。AW Appr应该是最新的。我正在使用这个查询,但它只提供最大月份和最大周数据。它是最新条目的完整数据的最大可用周数。请帮助增强查询以获取所有三个状态和AW Appr仅最新的一个。
源表 http://sqlfiddle.com/#!18/67924/2
SELECT DISTINCT t1.Contract_Number
,t2.D_Monthx
,t2.D_Reporting_Week
,t2.D_Status
FROM Table1 t1
INNER JOIN (
SELECT DISTINCT max(D_Monthx) D_Monthx
,Max(D_Reporting_Week) D_Reporting_Week
,D_Status
,Contract_Number
FROM Table1
GROUP BY Contract_Number
,D_Status
) t2 ON t1.Contract_Number = t2.Contract_Number
AND t1.D_Monthx = t2.D_Monthx
WHERE t1.Contract_Number = '130100964/2'
结果应该是 -
解决方案
使用Row_Number()
Select Contract_Number, D_Monthx, D_Reporting_Week, D_Status from
(Select *,
Row_Number() over
(partition by Contract_Number,D_Status order by D_Monthx desc)
as ranking
from Table1)c
where ranking=1
推荐阅读
- python - 如何测试访问外部服务的api?
- c# - C#如何在分布式系统上模拟Windows?
- java - 如何在 Java 中正确使用 Apache 公共数学库中的 ZipfDistribution?
- git - 在 TFS Web 界面中创建一个新文件夹
- metamodel - 是否有显示实体和关系的简单 OSLC 元模型?
- javascript - 无法对未安装的组件执行 React 状态更新。这是一个无操作
- c++ - C++ 继承和“const”交互的问题
- php - 为扩展另一个类的类编写 PHPUnit 测试会产生“找不到类”错误
- android - 改造,请求获取不必要的参数
- excel - 在 Excel 中的合并单元格上键入错误以显示消息功能