1

上图是我在 SQL 表中的内容。

我有这个查询,它在底部网格视图中给出了结果。查询将在 TransTypeDesc 列中返回最大的 EstimatedTransTime。如您所见,Car 是 Q1 中最大的 EstTransTime。

我唯一没有的是基于 DisplayNum 的 TotalEstimatedTransTime。所以对于第一季度,我应该有 31 分钟。

  SELECT t1.DisplayNum, t1.TransTypeDesc, t1.SubQueueId, t1.EstimatedTransTime 
  FROM vwQueueData AS t1 
  LEFT OUTER JOIN vwQueueData AS t2 ON t1.DisplayNum = t2.DisplayNum AND t1.EstimatedTransTime < t2.EstimatedTransTime 
  WHERE (t2.DisplayNum IS NULL) AND (t1.Called IS NULL) AND (t1.SubQ = @SubQ) 

在此处输入图像描述

这是 SQL 小提琴: http ://sqlfiddle.com/#!3/a8983/ 1

4

1 回答 1

1

您需要按照以下方式执行操作:

SELECT t1.DisplayNum, t1.TransTypeDesc, t1.SubQueueId, SUM(t1.EstimatedTransTime) 
FROM vwQueueData AS t1 
LEFT OUTER JOIN vwQueueData AS t2 
     ON t1.DisplayNum = t2.DisplayNum AND 
        t1.EstimatedTransTime < t2.EstimatedTransTime 
WHERE (t2.DisplayNum IS NULL) AND 
      (t1.Called IS NULL) AND (t1.SubQ = @SubQ)
GROUP BY t1.DisplayNum, t1.TransTypeDesc, t1.SubQueueId

基本上,将 SUM 函数添加到“EstimatedTransTime”列。然后在 DisplayNum 列上执行 group by 以获得所需的输出。

于 2013-07-15T18:26:08.240 回答