我正在尝试清理应用程序的报告和存档报告。 Hyland 的 OnBase 是我们的归档解决方案。我正在尝试确定观看任何
ItemNum
的最近日期。确定查看报告类型的最近日期可以帮助我确定这 400 多个报告中的任何一个是否有用,或者是否可以禁用它们。
一些重要专栏:
ItemTypeGroupNum
- Onbase 中应用程序的报告部分ItemTypeNum
- 与我们的应用程序得出的报告类型相关ItemNum
- 单独的带时间戳的报告示例:
ItemTypeGroupNum
= 161 - OnBase 中应用程序的报告块ItemTypeNum
= 5681 - 报告组标题 = G/L 文件维护ItemNum
= 250727772 - 总帐文件维护 - 6/25/2024我的第一次尝试以及由此产生的回复,以审查类似但不同的帖子这里。
接下来尝试使用
partition by
和over
。我的 SQL 技能不是那么敏锐,所以这可能是由于用户错误造成的。
接下来尝试使用
outer apply
但没有成功,我参考了这篇文章。
我最近的尝试:
SELECT
dt.itemtypenum,
dt.itemtypename,
tlx.MaxLogDate
FROM
hsi.itemdata AS id
INNER JOIN
hsi.doctype AS dt ON dt.itemtypenum = id.itemtypenum /* do I need this join? */
OUTER APPLY
(SELECT
tl.num, MAX(tl.logdate) AS MaxLogDate
FROM
hsi.transactionxlog AS tl
WHERE
tl.num = id.itemnum
-- AND tl.itemnum = 1234
AND tl.action IN (32, 35) /* showing only 'view' actions */
-- AND tl.logdate >= '2023-06-25'
GROUP BY
tl.logdate, tl.num) tlx
我得到的结果包括相同
ItemTypeNum
但不同 ItemNum
的多行,以及该个人 ItemNum
的最近访问日期:
项目类型编号 | 商品名称 | 最大日志日期 |
---|---|---|
5257 | 报告标题 1 - 01/01/2024 | 2024年1月2日 |
5257 | 报告标题 1 - 05/16/2024 | 2024/06/11 |
5681 | 总帐文件维护 - 04/20/2024 | 2024/05/15 |
5681 | 总帐文件维护 - 03/08/2024 | 2024年6月1日 |
5370 | 异常报告 - 02/20/2024 | 空 |
我想要返回的只是上表中的第 2、4 和 5 行,即具有该组
ItemTypeNum
的最大日期的行:
项目类型编号 | 商品名称 | 最大日志日期 |
---|---|---|
5257 | 报告标题 1 - 05/16/2024 | 2024/06/11 |
5681 | 总帐文件维护 - 03/08/2024 | 2024年6月1日 |
5370 | 异常报告 - 02/20/2024 | 空 |
我目前无法访问 OnBase 系统,因此无法测试此解决方案。但如果你想要查询的底部结果,这应该可以做到:
SELECT
dt.itemtypenum 'Doc type code',
dt.itemtypename 'Document type',
MAX(tl.logdate) 'Most Recent Access'
FROM hsi.itemdata AS id
INNER JOIN hsi.doctype AS dt ON dt.itemtypenum = id.itemtypenum
LEFT JOIN hsi.transactionxlog AS tl ON tl.itemtypenum = id.itemtypenum
WHERE tl.action IN (32, 35)
AND tl.logdate >= '2023-06-25' -- Replace this as appropriate; could be lots of records
GROUP BY dt.itemnum, dt.itemtypenum
我似乎记得
num
和itemnum
在transactionxlog
中是相同的,并且num
已被索引。您可能需要在系统上仔细检查以加快查询速度,并根据需要进行调整。
是的,您确实需要连接到
doctype
表,除非文档类型num记录在transactionxlog
中,我认为它不是。