以下是通过Business Objects包执行的T-SQL。我的问题是,是否有完成下列聚集的查询较短方式: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执行 - 这不受支持。
这种方法使用更少的代码,并且只有一个子查询,所以在我所要求而言是正确的。不知道对执行时间有什么影响,因为它们似乎是相同的,但代码少的几乎总是一件好事,所以谢谢。 – cope 2014-10-21 09:12:32