Random MS Access中使用循环的合格随机选择?
我使用的是Windows7,Access 2010 我有一个数据库,我需要从中返回一组随机记录。这些表是关系表 我有以下表格:Random MS Access中使用循环的合格随机选择?,random,selection,ms-access-2010,Random,Selection,Ms Access 2010,我使用的是Windows7,Access 2010 我有一个数据库,我需要从中返回一组随机记录。这些表是关系表 我有以下表格: 能力 元素 部分 例子 我用一个表达式创建了一个查询,该表达式对记录进行编号,我可以随机选择x个记录 问题是: 在元素中,我需要在每个元素中随机选择x个部分。因此,在我当前的设置中,我得到了x个部分,但它不包括每个元素中的至少一个部分。我想返回每个元素25%的部分 i、 e。 要素:7.1、7.2、7.3、7.4 第7.1.1、7.1.2、7.1.3节:7.2.1、
- 能力
- 元素
- 部分
- 例子
谢谢。您应该能够使用“从组中选择n”类型的查询,但您需要一个唯一的ID:
SELECT
t.ID,
t.Element,
t.Section
FROM Elements AS t
WHERE t.ID In (
SELECT Top 2 ID
FROM Elements q
WHERE q.Element=t.Element
ORDER BY Rnd([id])*1000)
我已经讨论过很多次了,我认为您必须为随机排序添加一个字段,然后在运行查询之前更新该字段。这将更新[能力要素]中名为RandomNumber的字段
UPDATE [Competency Elements]
SET [Competency Elements].RandomNumber = Rnd([element id])*1000;
然后百分比选择,我认为对于这个特定的数据集,它必须大于33:
SELECT Val([comp section number]) AS [Sect No],
s.[section description],
e.[element number],
e.[element description],
Rnd(e.[element id]) AS Expr1,
s.[section id],
e.[element id],
x.example,
s.[competency id],
c.[comp number],
c.[competency category]
FROM competencies AS c
INNER JOIN (([competency sections] AS s
INNER JOIN [competency elements] AS e
ON s.[section id] = e.[section id])
INNER JOIN examples AS x
ON e.[element id] = x.[element id])
ON c.[competency id] = s.[competency id]
WHERE (( ( e.[element id] ) IN (SELECT TOP 35 PERCENT [element id]
FROM [competency elements] q
WHERE q.[section id] = e.[section id]
ORDER BY randomnumber) ))
ORDER BY Val([comp section number]);
从一个组中随机选择有很多问题。我有一个主键。如果我按原样写的话,“t”表示表格?我是否将该代码放在查询中?“*1000”的作用是什么?非常感谢你!我还需要将这些结果输入到我已经设置好的报告中。我假设这是一个查询返回,但我不确定。我以前从未将代码写入Access。
元素,因为t
表示别名(将名称t分配给此表)。您需要它,以便可以从元素q中再次引用内部SQL中的元素,这些元素可以从元素q
中写入*1000,因为Rnd返回一个小的十进制数,所以乘以。是的,这是一个查询。如果名称是正确的元素、ID、Section
等,您可以直接粘贴到查询设计窗口的SQL视图中。我不确定ID是什么?其他的名字是正确的。我尝试时出现了语法错误。