好的,我的问题是:
我有一个表itemconfig,其中有很多关于存储在我们仓库中的项目的数据。我需要选择一个特殊的group
项目,这样我就可以做一些与工作相关的测试。到目前为止,当我滚动数据库时,我一直在脑子里做数学,但必须有一个更简单的方法。
在itemconfig中我想特别查看列case_qty和pal_qty以及itm_num。我想要做的是选择所有itm_num,其中pal_qty / case_qty
大于说500
。这将立即给我所有itm_num
与我的测试相关的信息。可悲的是,我不熟悉如何做到这一点,或者甚至可能。
感谢。
答案 0 :(得分:8)
分区在大多数SQL方言中实现:使用/
,如下所示:
select * from table
where pal_qty / case_qty > 500
假设case_qty
是非负的,你可以保护自己免于被零除(并使用pal_qty
上的索引,如果有的话*)将两边乘以case_qty
:
select * from table
where pal_qty > 500 * case_qty
*感谢Vincent Savard了解此观察结果。
答案 1 :(得分: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
答案 2 :(得分: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