使用普及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提前感谢
发布于 2010-09-08 21:38:29
试试这个:
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查询。
https://stackoverflow.com/questions/3668235
复制相似问题