0

我需要选择包含表中一个字段 (queryresolutiondate) 的最大值的记录,然后在该子集中,我只需要选择包含另一个字段 (queryestablishdate) 的最小值的记录。我曾尝试在单个子选择中选择最小值和最大值,但不幸的是,绝对最小值和最大值并不总是出现在同一条记录中,因此不会返回任何记录。

以下查询有效,但此代码是返回大约 45 列的更大查询的一部分,我不希望将 44 列分组:

select
q.[SourceCustomerId],
q.[SourceProductCode],
q.[SourceProductIssueNum],
min (q.[QueryEstablishDate]),
q.[SourceQueryCode],
q.[SourceQueryStatus],
q.[QueryResolutionDate]

from [dbo]..[dQueryAll] q with (nolock) 

inner join (select [SourceCustomerId], [SourceProductCode], [SourceProductIssueNum],   [SourceQueryCode], 
 max([QueryResolutionDate]) as maxQueryResolutionDate
from [dbo]..[dQueryAll] with (nolock) 
where [SourceQueryCode] = 311
group by [sourceCustomerId], [SourceProductCode], [SourceProductIssueNum], [SourceQueryCode]) qg 
on (qg.[SourceCustomerId] = q.[SourceCustomerId] and qg.[SourceProductCode] = q.[SourceProductCode]
 and qg.[SourceProductIssueNum] = q.[SourceProductIssueNum] 
 and qg.maxQueryResolutionDate = q.[QueryResolutionDate])

group by
q.[SourceCustomerId],
q.[SourceProductCode],
q.[SourceProductIssueNum],
q.[SourceQueryCode],
q.[SourceQueryStatus],
q.[QueryResolutionDate]

我想知道是否可以在上面的子选择中创建另一个子选择,以从包含最大解析日期的 rocrds 中选择最小建立日期。如果这是可能的,我需要一些帮助

我有一个表格中的数据示例,已粘贴到 Excel 中,但在此处找不到如何加载它。

4

1 回答 1

0

您可以嵌套选择,但是如果有良好的相关索引,按大量列分组不应该是性能问题。

至于嵌套,只需编写内部子查询,如果它在平面表上运行,则编写外部子查询。用内部子查询替换平面子查询。

高温高压

于 2013-06-27T14:15:02.590 回答