Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在SQL中查找每个组中首次出现的倍数值按日期排序_Sql_Ms Access_Group By - Fatal编程技术网

在SQL中查找每个组中首次出现的倍数值按日期排序

在SQL中查找每个组中首次出现的倍数值按日期排序,sql,ms-access,group-by,Sql,Ms Access,Group By,我有一个表,其中的每个操作都在事件组之前附加另一个值 只有3个操作:R、E、p + ----------+----------+-----------+------------------------+ | Rollcycle | Blocking | Operation | Order | + ----------+----------+-----------+------------------------+ | 1 | 3 |

我有一个表,其中的每个操作都在事件组之前附加另一个值

只有3个操作:R、E、p

+ ----------+----------+-----------+------------------------+ | Rollcycle | Blocking | Operation | Order | + ----------+----------+-----------+------------------------+ | 1 | 3 | R | 4 | | 1 | 3 | P | 3 | | 1 | 3 | E | 2 | | 1 | 3 | R | 1 | | 1 | 2 | P | 3 | | 1 | 2 | E | 2 | | 1 | 2 | R | 1 | | 1 | 1 | R | 1 | | 2 | 1 | E | 2 | | 2 | 1 | R | 1 | + ----------+----------+-----------+------------------------+ + ----------+----------+-----------+------------------------+ |滚动循环|阻塞|操作|命令| + ----------+----------+-----------+------------------------+ |1 | 3 | R | 4| |1 | 3 | P | 3| |1 | 3 | E | 2| |1 | 3 | R | 1| |1 | 2 | P | 3| |1 | 2 | E | 2| |1 | 2 | R | 1| |1 | 1 | R | 1| |2 | 1 | E | 2| |2 | 1 | R | 1| + ----------+----------+-----------+------------------------+ 我想知道在每个阻塞组之前按Rollcycle执行哪些操作。 我需要在access SQL中执行此操作

输出

+ ----------+----------+---+---+---+ | Rollcycle | Blocking | R | E | P | + ----------+----------+---+---+---+ | 1 | 1 | 1 | 0 | 0 | | 1 | 2 | 0 | 1 | 1 | | 1 | 3 | 1 | 0 | 0 | | 2 | 1 | 1 | 1 | 0 | + ----------+----------+---+---+---+ + ----------+----------+---+---+---+ |滚动循环|阻塞| R | E | P| + ----------+----------+---+---+---+ | 1 | 1 | 1 | 0 | 0 | | 1 | 2 | 0 | 1 | 1 | | 1 | 3 | 1 | 0 | 0 | | 2 | 1 | 1 | 1 | 0 | + ----------+----------+---+---+---+ 我找不到类似的东西。可能太具体了

请帮忙:)


编辑:返回原始表

如果我正确地跟踪了您,您可以筛选
顺序
大于或等于
阻塞
的记录,然后执行条件聚合:

select
    rollcycle,
    blocking,
    max(iif(operation = 'R', 1, 0)) R,
    max(iif(operation = 'E', 1, 0)) E,
    max(iif(operation = 'P', 1, 0)) P
from mytable 
where order >= blocking
group by rollcycle, blocking

不幸的是,我们不能这样做,因为订单是一个日期,而不是一个像阻塞一样的数字。。。我会编辑我的帖子,让它更清晰。@Bunny:好吧,现在这是一个不同的问题。。。这不是一个好的做法,实质上编辑问题后,答案被张贴。对不起,我是新的这个。。。下次我将发布一个新问题。我返回到原始表并用编辑发布一个新问题。我尝试修改我的查询以匹配此问题。但是你的awnser只给我最后一次手术(最大),我需要所有手术。