2013-07-15 33 views
1

顶部图片是我在SQL表中的内容。根据ID返回字段总和的SQL查询

我有这个查询,给我在底部gridview的结果。该查询将返回TransTypeDesc列中最大的EstimatedTransTime。正如你可以看到汽车是第一季度最大的EstTransTime。

我唯一没有的是基于DisplayNum的TotalEstimatedTransTime。所以对于Q1我应该有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) 

enter image description here

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

+1

你如何期望在几种可能性中选择'TransTypeDesc'? – dasblinkenlight

+0

@dasblinkenlight TransTypeDesc将是最高EstimatedTransTime – Apollo

+0

@dasblinkenlight TrasTypeDesc已经在工作我只需要总结Q1的所有EstimatedTransTime。 – Apollo

回答

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列上执行一个分组以获得所需的输出。

+0

这个剧照并没有增加,但我可以认为我们正朝着正确的方向前进。 – Apollo

+0

请检查http://sqlfiddle.com/#!3/a8983/1 – Apollo

+0

请尝试以下。我用你的链接使用它。为了使示例更简单,缺少一些列和连接。基本上下面的查询给你你需要什么:SELECT t1.DisplayNum,SUM(t1.EstimatedTransTime) FROM tblTest AS t1 GROUP BY t1.DisplayNum – Sudhir