【问题标题】:Selecting partial data for day based on when column value meets condition根据列值何时满足条件选择当天的部分数据
【发布时间】:2015-12-06 19:23:20
【问题描述】:

我使用的是 Access 2010。我的 SQL 知识有限,无法弄清楚如何编写以下规则。

我有一个 datetime 列,我按 datetime 排序,然后按日期分组(使用 group by int(datetime)。

现在我想选择每个日期内的记录,包括满足条件的点。一旦满足条件,则该记录与所有先前的记录将作为当天的记录集返回。符合条件的该日期的记录将被忽略。

我的数据有:

Trade  DateTime           Points  CumPoints
1   11/20/2015 9:31 AM      2       2
2   11/20/2015 9:49 AM      1       3
3   11/20/2015 9:55 AM      1.25    4.25
4   11/20/2015 10:20 AM     -1.5    2.75  -- record ignored
5   11/20/2015 10:21 AM     -0.75   2  -- record ignored
6   11/20/2015 10:36 AM      5.25   7.25  -- record ignored
1   11/23/2015 9:30 AM       2      2
2   11/23/2015 10:07 AM     -1.25   0.75
3   11/23/2015 10:29 AM      0.5    1.25
4   11/23/2015 11:07 AM     -1.25   0
5   11/23/2015 11:23 AM     -0.25   -0.25 -- record ignored
6   11/23/2015 12:53 PM     -1      -1.25 -- record ignored

因此,如果我的规则是一旦 Cum-points >=4 或者如果 Cum-points

我们将不胜感激。

【问题讨论】:

    标签: ms-access ms-access-2010


    【解决方案1】:

    可能是这样的:

    Select 
        DateValue([DateTime]) As [Date], Points, CumPoints
    From
        YourTable
    Having
        (CumPoints >= 4) 
            Or 
        (TimeValue([DateTime]) > #11:00:00 AM# 
        And
        CumPoints <= 0)
    Group By
        DateValue([DateTime]) As [Date], Points, CumPoints
    

    您必须进行调整,因为您的样本数据与您对条件的描述不相关。

    【讨论】:

    • 感谢您的回复。我的文字描述是正确的,但我的数据图形不正确,因为我没有“突出显示”以忽略第一天的第 4 条记录。您提供的解决方案并没有给我我所希望的。仅使用第一个条件,一旦 cumpoints 达到 4,则无论 cumpoints 的值如何,所有后续记录都应被忽略。 (cumpoints 实际上是点的总和)。您的解决方案给了我满足其中一个解决方案的记录(即 cumpoints >=4),但没有给我例如第一条记录。
    • 但是上午 11:00 是从哪里来的呢?条件必须非常清楚。
    • 我只是想通过澄清场景 1 来缩短问题。场景 2 是,如果上午 11 点后 cumpoints
    • 如果我使用的是平面文件,我会打开源文件,每天循环播放每条记录,确定记录是否可以保存。如果好,那么我会将记录添加到第二个临时文件(或链接列表)。一旦满足一个条件,我就会退出循环,开始新的一天的处理。我想我可能需要通过 VBA 执行此操作,但我不知道如何执行将最终结果集传递回访问报告的机制。
    • 那么我认为最简单的方法是在VB中循环记录集并用True标记一个新字段以供这些记录选择。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-22
    • 2020-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多