如何使用DQL计算文件夹中不同类型文档的数量

时间:2015-08-30 02:06:06

标签: documentum

我有两种类型的文档,例如obj_type_A和obj_type_B,它们可能位于obj_type_fldr类型的文件夹中,也可能不存在。

我需要获取obj_type_fldr类型文件夹中存在的两个文档的数量。

如果它有一个sql,我们可以在select子句中编写子查询。但是DQL不支持这个功能。

1 个答案:

答案 0 :(得分:1)

这里的诀窍是利用r_object_type的{​​{1}}属性。因此,如果您的两个自定义类型都是dm_sysobject的后代,那么您可能只能实现所需。在这种情况下,你就是这样做的。

基本点数

dm_sysobject

示例输出:

SELECT count(r_object_id), r_object_type 
FROM dm_sysobject
WHERE ANY i_folder_id IN (
    SELECT r_object_id 
    FROM obj_type_fldr
) 
AND r_object_type IN ('obj_type_A','obj_type_B') 
GROUP BY r_object_type

按文件夹计数

此外,如果您想要计算每个文件夹中的文档数量,只需将dm_attr_0001 r_object_type ------------ -------------------------------- 271 obj_type_A 195 obj_type_B (2 rows affected) 添加到您的查询中,如下所示:

i_folder_id

示例输出:

SELECT count(r_object_id), r_object_type, i_folder_id 
FROM dm_sysobject
WHERE ANY i_folder_id IN (
    SELECT r_object_id 
    FROM obj_type_fldr
) 
AND r_object_type IN ('obj_type_A','obj_type_B') 
GROUP BY r_object_type, i_folder_id

您当然可以使用其他条款扩展此查询,例如:为了只计算特定路径中的文档,但是你可以得到一般的想法。