【问题标题】:MS Access - randomly select records based on percentageMS Access - 根据百分比随机选择记录
【发布时间】:2017-11-03 11:56:49
【问题描述】:

我有一个数据库,我需要在其中随机选择每个日期、每个用户的记录,并且每个用户都有不同百分比的必须选择的记录。

如果我只有一个日期和一个用户,我可以这样做:

    strSQL = "SELECT TOP " & intPercent & " PERCENT * FROM [tblRevision] WHERE & _ 
DateCreated = #" & dteDate & "# ORDER BY RandomNumber DESC;"

有人可以指出正确的方向,以便我可以将其应用于包含多个日期和多个用户的记录集。

有人建议我的问题可能与以下帖子重复:Random sorting query Access,但这并不能解决我关于一个日期和多个用户的问题。

提前致谢。

【问题讨论】:

标签: ms-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 等。
猜你喜欢
  • 2016-02-26
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多