2016-12-16 12 views
0

だから私は、データベーステーブルを持っている:計算のみの個別行

projectNo| process | studio  | requiredNo | 
---------+---------+------------+------------+ 
16090001 | ANM  | APEX  | 10   | 
16090001 | ANM  | BASECAMP | 10   | 
16090001 | BGD  | CANVAS  | 15   | 
16090001 | BGD  | PALETTE | 15   | 

私は必要な数を計算します。しかし、私は

SELECT SUM(requiredNo) FROM process WHERE projectNo='$projectNo' 

を行うとき、私は50を得る。しかし、プロセスは同じですが、スタジオはdefferentあるので、それは、唯一の25でなければなりません。しかし、私はプロセスごとに計算する必要があります。だから私はどのように別個のプロセスだけを計算できますか?

答えて

0
select sum(mreq) 
from 
(
    select max(requiredNo) as mreq 
    from process 
    where projectNo='$projectNo' 
    group by process 
) tmp 

インナーセレクトは、プロセスごとに最高でrequiredNoになります。外側の選択はそれを合計します。

関連する問題