需要根据最近日期返回 1 行,OnBase 文档清理

问题描述 投票:0回答:1

我正在尝试清理应用程序的报告和存档报告。 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 数据库图

sql-server ssms onbase
1个回答
0
投票

我目前无法访问 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
中,我认为它不是。

© www.soinside.com 2019 - 2024. All rights reserved.