2016-12-31 8 views
1

まあ、私は私のテーブルにこれらの列があります。MYSQLクエリを複数の条件とSUM関数

  1. wo_number
  2. crew_est
  3. manhour_est
  4. のステータス( '完了' またはNULL)
  5. 進捗状況(これはテーブルにはありません)

私はこの計算をpローグ:

progress = SUM(crew_est * manhour_est) WHERE status = 'FINISH')/(SUM(crew_est * manhour_est) WHERE status IS NULL); 

私は上記の計算を行い、結果をwo_numberでグループ化する必要があります。私はどこでも答えを探していますが、まだ運がありません。どこから始めたらいいのか分かりません。

ご協力いただければ幸いです。 ありがとうございます。

+0

ので、進捗状況はwo_numberあたりになりますか? – GurV

+0

@GurwinderSinghはい、正しい。 –

答えて

2

あなたは条件付き集約のためのケースを使用することができます。

select wo_Number, 
    100.0 * SUM(case 
      when status = 'FINISH' 
       then crew_est * manhour_est 
      else 0 
      end)/SUM(case 
      when status is null 
       then crew_est * manhour_est 
      else 0 
      end) progress_percentage 
from your_table 
group by wo_number; 
+0

追加するのを忘れました。進捗状況の結果をパーセントで取得するにはどうすればよいですか?事前に感謝して、あなたのクエリが動作しています。 –

+0

@MAnsyori 100に100を乗じただけではないのですか? – GurV

+0

正解で、百分率を100倍しただけです。本当にありがとうございます。 –