所以我有一个不同数字的列,并希望在30分钟的间隔内按范围对它们进行分类。因此5将是0-30,697将是690-720,169将是150-180。我首先考虑做一个case语句,但它看起来不像Access 2003支持它。是否有某种算法可以确定范围?优选地,这将在查询中完成。
谢谢。
答案 0 :(得分:2)
使用Int函数取(number / 30)的整数部分,然后乘以30得到你的下界,然后在该数字上加30得到你的上限。
Int(5 / 30) = 0 * 30 = 0
Int(697 / 30) = 23 * 30 = 690
答案 1 :(得分:0)
使用/(整数除法)和*(乘法)。 5/30 * 30 = 0 697/30 * 30 = 690 169/30 * 30 = 150 ...
答案 2 :(得分:0)
让x成为包含您要编目的值的列,您使用的是伪SQL:
select ((x/30)*30) as minrange,
(((x/30)+1)*30) as maxrange
from yourtable
(你应该选择除法的整数部分) 希望这会有所帮助。
答案 3 :(得分:0)
这是相当直接的。您可以使用以下内容。
(number \ 30) * 30
这将为您提供范围的较低索引。它确实有一个问题,即30,720,180等将作为自己返回。这意味着您的范围需要为0-29,690-719等,或让您的来电者考虑到这一点。
这假设您正在使用VBA,其中'\'运算符仅返回商。有关VB运算符here
的更多信息,请参阅