DQL Select为可重复的值返回多行

时间:2011-07-28 13:17:47

标签: documentum

我正在使用Documentum Developer Edition 6.6。我运行了以下DQL: 从“dm_document”中选择“r_object_id”,“r_modify_date”,“r_version_label”,“i_position”,“object_name”,其中FOLDER(ID('0bde75d18000cfa4'))和“r_object_type”='dm_document'按“r_modify_date”asc排序,“ i_position“desc

我预计:DQL将为每个dm_documentum对象返回一行。我记得 - 我之前用这个DQL的请求做了 - 每个文件都有一个roe。但今天我看到:对于某些dm_document对象,只返回了一行;而对于其他dm_document对象,每个对象返回几行!如下所示:

09de75d18000d514 7/28/2011 3:41 PM 1.0,CURRENT -1,-2 Doc1 09de75d18000d515 7/28/2011 3:41 PM 1.0 -1 Doc2 ... 09de75d18000d515 7/28/2011 3:41 PM CURRENT -2 Doc2

换句话说 - 对于09de75d18000d514,返回一行(可重复的“r_version_label”和“i_position”作为数组);而对于另一个文档09de75d18000d515,可重复的属性作为单独的行返回。 这是为什么?对我来说,这看起来像一个错误 - 因为文件09de75d18000d514和09de75d18000d515没有本质区别;它们只是通常的dm_document实例,仅此而已。

更重要的问题是:我该怎么办?如果我从DQL中删除“”i_position“desc”,我看到问题就消失了 - 然后每个dm_object都作为单行返回。但我需要这个“”i_position“desc”排序使“r_version_label”按照“i_position”的相应值排序(“r_version_label”数组的每个项目对应于包含其“位置”的“i_position”数组的项目数”)。 也许这是我的假设 - Documentum应该将“r_version_label”相应地命名为“i_position”,因为我指定了“”i_position“desc” - 是错的?如果是这样,现在我看到了解决这个问题的唯一方法:

  • 我使用没有“”i_position“desc”
  • 的DQL
  • 我的软件(它使用DFS)将对“r_version_label”项本身进行排序 - 在DQL带来结果后 - 使用来自“i_position”的索引

也许有更好的解决方案?

1 个答案:

答案 0 :(得分:2)

我假设您希望获得r_version_label的行数与对象相同的行数(如果已经获取)。

我知道你可以使用'按r_object_id排序,i_position desc'。

由于您也希望在r_modify_date上进行排序,您可以尝试'按r_modify_date asc,r_object_id,i_position desc'排序,或者只是在代码中进行日期排序。