4

さて、私の質問:

倉庫に保管されているアイテムに関する多くのデータがあるテーブルitemconfigがあります。仕事に関連するテストを行うために、特別なgroupアイテムを選択する必要があります。これまで、データベースをスクロールしながら頭の中で計算を行ってきましたが、もっと簡単な方法があるはずです。

itemconfig内で、case_qty列とpal_qty列およびitm_num列を具体的に調べたいと思います。私がやりたいのはpal_qty / case_qty、言うよりも大きいすべてのitm_numを選択すること500です。これによりitm_num、私のテストに関連するすべての情報が即座に得られます。悲しいことに、私はこれを行う方法や、それが可能かどうかさえよく知りません。

ありがとう。

4

3 に答える 3

8

除算はほとんどのSQL方言で実装されています:次/のように使用します:

select * from table
where  pal_qty / case_qty > 500

が負ではないと仮定すると、両側に次の値を掛けることで、case_qtyゼロによる除算から身を守ることができます(そして、もしあれば、インデックスを使用します*) 。pal_qtycase_qty

select * from table
where  pal_qty > 500 * case_qty

*この観察をしてくれたVincentSavardに感謝します。

于 2012-07-27T17:07:21.370 に答える
3

これは、次の簡単なWHERE句を使用して可能です。

SELECT 
  itm_num
FROM itemconfig
WHERE 
  /* Make sure you don't divide by zero */
  case_qty > 0 AND
  pal_qty / case_qty > 500
于 2012-07-27T17:07:17.487 に答える
0

WHERE句で除算を使用できます。

SELECT itm_num
FROM itemconfig
WHERE (pal_qty/case_qty) > 500

ゼロに等しいcase_qtyがある場合は、ゼロで除算しないようにする必要があります。

SELECT itm_num
FROM itemconfig
WHERE (pal_qty/case_qty) > 500
    AND case_qty > 0
于 2012-07-27T17:07:01.420 に答える