我目前正在使用一个文档管理系统,但遇到了一些问题。我希望能够选择并显示具有最高版本号的每个唯一文档,这是我当前的代码:
SELECT DISTINCT( policyheader.policytitle ),
Max(policyrecords.policyversion) AS maxPolicy,
policyrecords.useruploaddate,
policyrecords.policydesc,
LEFT(policyrecords.whatchanged, 30) AS changes,
policyheader.policyref
FROM policyrecords
INNER JOIN policyheader
ON policyrecords.policyref = policyheader.policyref
GROUP BY policyrecords.policydesc,
policyrecords.policyversion
我也一直在尝试IN
。它正在返回此数据:
我想要它返回的是以下数据:
您可以通过几种方法来解决这个问题。该not exists
方法通常表现良好:
SELECT ph.policyTitle, pr.*
FROM policyrecords pr INNER JOIN
policyheader ph
ON pr.policyRef = ph.policyRef
WHERE not exists (select 1
from policyrecords pr2
where pr2.policyRef = pr.policyRef and
pr2.policyVersion > pr.policyVersion
);
这实现了以下逻辑:“从policyrecords
没有相同policyRef
且较大的记录的地方获取我所有的记录policyVersion
。” 这是给我最高版本的一种奇特的说法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句