2011-11-15 104 views
0

所以我有喜歡計數在SQL查詢中

enter image description here

表現在我需要得到這個包裝成一個DataGridView時選擇在充滿紫外線的組合框由='主人」。 如果我選擇了uv,例如MG。我得到了他所有的文件/ dosno的工作列表以及他花費在文件上的時間。

我這樣做與此查詢:

SELECT kbpres.uv, 
     dbo.doss.dosno, 
     SUM(dbo.kbpres.uur) AS somuur, 
     SUM(dbo.kbpres.minuut) AS somminuut, 
     CAST ((SUM(dbo.kbpres.uur) + SUM(dbo.kbpres.minuut)/60) AS VARCHAR(4) 
     ) + 
     'u ' + CAST ((SUM(dbo.kbpres.minuut) % 60) AS VARCHAR(2)) + 'm' AS 
     [derivedColumn], 
     doss.behdr 
FROM dbo.kbpres 
     INNER JOIN dbo.doss 
     ON dbo.kbpres.ino = dbo.doss.ino 
WHERE (dbo.kbpres.uv LIKE @cboBeheerder) 
GROUP BY kbpres.uv, 
      dbo.doss.dosno, 
      doss.behdr 

(Allthough我只想通過UV組,必須添加dosno和behdr以及??)

現在的問題是,我如何計算正確的成本,因爲它是每個記錄不同的。 爲MG這將是:

10 * 60 dosno 88888

20 * 76 66666

60 * 10 +(28小時+10分鐘* 10)+ 10 * 2 12345

任何想法,如果這是可能的?

+1

請粘貼數據的數據,而不是一個圖片... –

+0

唉,我看不到工作的圖片:( – MatBailie

回答

0
SELECT dosno, 
    SUM(uur)*60 + SUM(minuut) AS Time, 
    (SUM(uur)*60 + SUM(minuut)) * cost AS TotalCost 
FROM dbo.kbpres k 
INNER JOIN dbo.doss d ON k.ino = d.ino 
GROUP BY dosno,k.ino,d.ino,cost 
WHERE k.uv = 2 

由於成本似乎是紫外線的功能和dosno嘗試

SELECT dosno,SUM(Time) AS Time,SUM(TotalCost) AS TotalCost FROM 
(
SELECT dosno, 
    uur*60 + minuut AS Time, 
    (uur*60 + minuut) * cost AS TotalCost 
FROM dbo.kbpres k 
INNER JOIN dbo.doss d ON k.ino = d.ino 
GROUP BY dosno,k.ino,d.ino,cost 
WHERE k.uv = 2 
) t 
GROUP BY dosno 
+0

與我說它的成本應該是在一個聚合或一組group by。是真的有必要或我的查詢不正確構建? –

+0

按成本也集團。我已經假設成本是一個價值每分鐘,所以我只是簡單地展示如何添加和相乘聚合值 - SUM(...)值...以獲得您正在查找的結果。 –

+0

我也曾經認爲每個dosno的每個uv的成本是相同的,但實際上它是不同的。我會相應更新。 –