2016-08-24 3 views
0

私はPLSQLを使用して、以下の関数の一部を実現しています。plsqlが別の計算を制御する場合

私は、各ピースの重量でピースレベルのデータを持っているテーブルを持っています。基本的には、次の機能を実現したいと思います:

  1. 個数が1より大きい場合はLBです。 GROUPBYのはceil(重量)(次のLB)
  2. ピース重量が少ない1つのLBのGROUPBYセル(重量* 16)(次OZ)

であれば、私はPLSQLでいることを実感することができますどのようにだけ興味があります。私はif文を持つ必要があると感じています。しかし、私はそれをどうやって行うのか分かりません。

(体重はすでにそのテーブルの変数であり、私はここに宣言する必要がありますか?)

 begin 
      if weight <1 then 
       select ceil(weight*16),sum(weight) 
      from ops_owner.track_mail_item 
      where manifestdate = '24-aug-2016' 
      group by ceil(weight*16) 

      else select ceil(weight),sum(weight) 
      from ops_owner.track_mail_item 
      where manifestdate = '24-aug-2016' 
      end if, 
      end; 

はどうもありがとうございました!

答えて

0

インラインビューで重み値を調整すると思います。

select 
    ceil(adjusted_weight), 
    sum(adjusted_weight) 
from 
    (
    select 
    case 
     when weight < 1 then weight * 16 
     else weight 
    end adjusted_weight 
    from 
    ops_owner.track_mail_item 
    where 
    manifestdate = '24-aug-2016' 
    ) 
group by 
    ceil(adjusted_weight); 
+0

Davidありがとうございます。それは私の問題を解決する! –

関連する問題