我是SQL的新手,所以对noob问题道歉。我搜索过其他文章,但似乎找不到适用于我的问题的东西......
基本上我有2个表(DOCMASTER,DOSHISTORY),因为您可能已经猜到这是对我们的DMS的查询。用户基本上想要一份关于某组文件编号(这些是模板文件)的报告,其中包含以下信息; - 创建日期 - 上次访问 - 最后修改 - 文件编号(唯一标识)
我可以通过以下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查询所有内容。
答案 0 :(得分:2)
因为我们没有测试数据以及以下是最安全的方法
;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
答案 1 :(得分:0)
var conditionField = condition.replace(/(.*)(.*EQUALS)/, '$1');