我想判断序列是否在序列索引处完成.

我有一个这样的表@workREQUIREMENTS,其中包含序列所需的/计划的INTRAWORKNO:

INTRAWORKNO
10
20
30

我有一张这样的@results号桌:

SEQUENCE INTRAWORKNO part
1 10 0
1 30 0
2 10 0
2 20 0
2 30 0
3 10 0
3 10 1
3 10 2
6 40 0
7 40 0
8 10 0
8 20 0
8 20 1
8 30 0

我如何删除这个序列,其中我没有在相应的SEQUENCE中拥有全部INTRAWORKNO个?

如你所见,

  • 序列1没有INTRAWORKNO 20,它go 掉了这个序列-->NG
  • 序列2全部为INTRAWORKNO-->OK
  • 序列3没有INTRAWORKNO 20和30 --NG
  • 序列6和7没有@workREQUIREMENTS个表中的值-->NG
  • 序列8具有全部INTRAWORKNO(INTRAWORKNO 20分成子部分)-->OK

一个group by子句加上一个count不会带来预期的结果,因为这SEQUENCE可能有多个子部分(特征).

所需结果以粗体显示.

推荐答案

这看起来像是关系部门.您可以对此(explanation here)使用Double not exists:

select *
from results as r1
where not exists (
    select *
    from requirements as reqd
    where not exists (
        select *
        from results as r2
        where r1.sequence = r2.sequence and r2.intraworkno = reqd.intraworkno
    )
);

DB<>Fiddle

Sql相关问答推荐

如果开始期间不存在PostgresSql回填数据

为什么在这种情况下我不能使用LAG函数?

Ffltter&;Dart SQL Lite包:是否可以在一个查询中执行多条更新语句(每次执行不同的WHERE参数)

使用多个嵌套数组查询JSON数据

IF NOT EXISTS子查询的性能瓶颈

需要从键-值对数据中提取值

按两列分组,并根据SQL中的条件返回第三个列值

如何将不同层次的产品组和规格组合到最深一层?

使用与JOIN一起使用的查询后进行分页和排序

通过UPDATE SELECT更新表时出现问题

SQL中相同表内的VLOOKUP等价

使用CTE在SNOWFLAKE中创建临时表

如何计算两个非周期性时间序列+分组的重叠持续时间

使用长 IN 子句的 SQL 优化

如何在sparksql查询中使用日期值?

函数调用作为插入值语句中的参数

字符串从更改到表列和查询中的一行的转换错误

为数组中的每个元素从表中收集最大整数

SQLite 中的过滤运行总和视图

ACCESS SQL - 有没有办法使用通配符仅 Select 字段的特定部分?