4

好的,所以我的问题:

我有一个表 itemconfig,其中有很多关于存储在我们仓库中的物品的数据。我需要选择一个特殊group的项目,以便我可以进行一些与工作相关的测试。到目前为止,当我滚动浏览数据库时,我一直在脑海中进行数学运算,但必须有一种更简单的方法。

在 itemconfig 中,我想专门查看 case_qty 和 pal_qty 以及 itm_num 列。我想做的是选择pal_qty / case_qty大于 say 的所有 itm_num 500。这将itm_num立即为我提供与我的测试相关的所有内容。可悲的是,我不熟悉如何做到这一点,或者它是否可能。

谢谢。

4

3 回答 3

8

在大多数 SQL 方言中都实现除法: use /,如下所示:

select * from table
where  pal_qty / case_qty > 500

假设case_qty是非负数,您可以pal_qty通过将两边乘以 来保护自己免于被零除(并在 上使用索引,如果有的话*)case_qty

select * from table
where  pal_qty > 500 * case_qty

* 感谢文森特萨瓦德的观察。

于 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 回答