【发布时间】:2014-12-15 15:24:12
【问题描述】:
以下是通过业务对象包执行的 T-SQL。我的问题是,是否有更短的方法来完成查询的以下聚合:
(SELECT tblName.Details
FROM tblName
WHERE tblName.ID = (SELECT Max(tblName2.ID)
FROM tblName tblName2
WHERE tblMainQuery.id = tblName2.id
AND tblName2.StartDate = (SELECT Max(tblName3.StartDate)
FROM tblName tblName3
WHERE tblMainQuery.id = tblName3.id)))
tblMainQuery.id 是一个使其成为相关子查询的字段。
总而言之,我想将整个查询实现为一个子查询,我想在其中检索最近开始日期的 id,但由于最近开始日期可能返回多个记录,请转到向下到主键级别并检索最高主键。
我知道使用 CTE 会有所帮助,但这不可能,因为它必须通过 Business Objects Web Intelligence 执行 - 不支持。
【问题讨论】:
标签: sql sql-server aggregation