MS Access - 根据百分比随机选择记录
Posted
技术标签:
【中文标题】MS Access - 根据百分比随机选择记录【英文标题】:MS Access - randomly select records based on percentage 【发布时间】:2017-11-03 11:56:49 【问题描述】:我有一个数据库,我需要在其中随机选择每个日期、每个用户的记录,并且每个用户都有不同百分比的必须选择的记录。
如果我只有一个日期和一个用户,我可以这样做:
strSQL = "SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & _
DateCreated = #" & dteDate & "# ORDER BY RandomNumber DESC;"
有人可以指出正确的方向,以便我可以将其应用于包含多个日期和多个用户的记录集。
有人建议我的问题可能与以下帖子重复:Random sorting query Access,但这并不能解决我关于一个日期和多个用户的问题。
提前致谢。
【问题讨论】:
Random sorting query Access的可能重复 【参考方案1】:UNION 语句怎么样?
select first set of data
UNION
select second set of data
UNION
select third set of data
ORDER BY col1, col2
【讨论】:
这个问题如何适用? 要使用三个日期,请创建三个 select 语句并将它们联合在一起: strSQL = "SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate & "# " & "UNION SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate2 & "# " & "UNION SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & DateCreated = #" & dteDate3 & "# " & "ORDER BY RandomNumber DESC;" 我可能不理解这一点,但在我看来,这使它变得非常静态。如果要执行此操作的日期多于或少于 3 个怎么办。我每次都必须修改查询吗? 您可以使用一系列 IF 语句来构建 SQL 字符串。例如,创建第一个语句。如果有一个 Date2 然后 strSQL = strSQL & " UNION " & strSQL2 等。以上是关于MS Access - 根据百分比随机选择记录的主要内容,如果未能解决你的问题,请参考以下文章