2013-07-15 70 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