我是 SQL 的新手,所以对菜鸟问题深表歉意。我搜索了其他文章,但似乎无法找到适合我的问题的内容...
基本上我有 2 个表(DOCMASTER、DOSHISTORY),因为您可能已经猜到这是对我们 DMS 的查询。本质上,用户想要一份关于一组特定文档编号(这些是模板文档)的报告,其中包含以下信息;- 创建日期 - 上次访问时间 - 上次修改时间 - 文档编号(唯一 ID)
我可以通过以下 2 个查询获得上述信息;
创建日期 + 上次修改日期(来自 DOCMASTER 表)
SELECT [DOCNAME],[DOCNUM],[EDITWHEN] as 'last edited date',[ENTRYWHEN] as 'created date'
FROM [Knowledge_Prod].[MHGROUP].[DOCMASTER]
where DOCNUM in ('10098776', '1355264')
上次访问日期(来自 DOCHISTORY 表)
SELECT DOCNUM, MAX (ACTIVITY_DATETIME) as 'last accessed date'
FROM [Knowledge_Prod].[MHGROUP].[DOCHISTORY]
WHERE ACTIVITY in ('View','Create','Copy', 'Checkin', 'Checkout','Print','Mail')
and DOCNUM in ('10098776', '1355264')
Group by DOCNUM
根据 DOCNUM 加入这些查询以将结果编译在一起的最佳方法是什么?
DOCNUM - 上次访问日期 - 上次编辑日期 - 创建日期
预先感谢您的帮助,这在过去的几个小时里一直在压碎我的灵魂。此外,我使用 SMSS 进行所有查询。
因为我们没有测试数据来测试,下面是一种最安全的方法
;with cte
as
(
SELECT [DOCNAME],[DOCNUM],[EDITWHEN] as 'last edited date',[ENTRYWHEN] as 'created date'
FROM [Knowledge_Prod].[MHGROUP].[DOCMASTER]
where DOCNUM in ('10098776', '1355264')
)
,cte1 as
(
SELECT DOCNUM, MAX (ACTIVITY_DATETIME) as 'last accessed date'
FROM [Knowledge_Prod].[MHGROUP].[DOCHISTORY]
WHERE ACTIVITY in ('View','Create','Copy', 'Checkin', 'Checkout','Print','Mail') and DOCNUM in ('10098776', '1355264')
Group by DOCNUM)
select * from cte c join cte1 c1
on c1.docnum=c.docnum
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句