sql - 从结果中选择最大日期行

标签 sql postgresql pervasive pervasive-sql

使用 Pervasive SQL,我有一个结果集:

Tp_No     Name        State    Eff_Date     Actual      Billed   
 1006       ABC        TN      2006-07-01     .1          .5
 1006       ABC        TN      2008-02-15     .27         .6
 1006       ABC        TN      2010-09-01     .37         .7
 1022       Widget     TN      2006-07-01     .1          .5
 1022       Widget     TN      2007-02-22     .27         .6
 1022       Widget     TN      2009-01-01     .37         .7
 1022       Widget     TN      2010-11-11     .38         .71

我想要的是日期为 MAX 的每个客户、公司和州的行:

Tp_No     Name        State    Eff_Date     Actual      Billed 
 1006       ABC        TN      2010-09-01     .37         .7
 1022       Widget     TN      2010-11-11     .38         .71

使它变得有点困难的是原始结果集是查询的结果,而不仅仅是直接来自表。

    select a.tp_no, c.name, a.state, b.eff_date, a.er_rate as 'Actual', b.er_rate as 'Billed' 
from "PR_TSUTA" as a 
left join CL_SUTA as b on(a.tp_no=b.loc_no)
left join CL_MAST as c on(b.loc_no=c.loc_no) 
where c.yn_17 = 'A' and a.er_rate != b.er_rate 
order by a.tp_no

提前致谢

最佳答案

试试这个:

SELECT
    a.tp_no AS ClientNum,
    c.name AS Company,
    a.state AS State,
    MAX(b.eff_date) AS Date
FROM "PR_TSUTA" AS a 
LEFT JOIN CL_SUTA AS b ON a.tp_no = b.loc_no
LEFT JOIN CL_MAST AS c ON b.loc_no = c.loc_no
WHERE c.yn_17 = 'A' AND a.er_rate != b.er_rate 
GROUP BY a.tp_no, c.name, a.state

如果您还需要 Actual 和 Billed 的值,那么您应该使用 greatest-n-per-group查询。

关于sql - 从结果中选择最大日期行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3668235/

相关文章:

python - 如何对字段值的每个给定增量进行 GROUP BY?

pervasive - .DDF 文件有什么用途?

python - 加入 SQLAlchemy 中的子查询

php - 连接不同内容的表

mysql - 使用选择查询顺序按最高值降序更新列

postgresql - 删除postgresql中的临时文件

sql - 在数据库中查找坐标的最快方法

postgresql - 使用触发器更新行而不会导致无限循环

database - 普适8.x如何访问?在哪里可以找到

database - 无孔不入和探戈?