我必须根据现有数据获得“建议”的记录分组。
表 A 有一个复合键Akey+Bkey
. 表 B 的主键为Bkey
。
Akey
由 SQL 2012 序列对象生成,表 A 和表 B 上的表 B 之间存在一对多关系。
下面列出了结构和样本数据。
表 A
Akey Bkey ItemSequence
---- ---- ------------
1 1 1
1 5 2
1 7 3
2 7 1
3 2 1
3 3 2
表 B
Bkey GroupValue Data HashString
---- --------------- -------------- ----------
1 Ford Festiva AIR BAG HASH1
2 Ford Festiva RADIATOR CAP HASH2
3 Ford Festiva FUEL PUMP HASH3
4 Ford Mustang AIR FILTER HASH4
5 Ford Explorer AIR FILTER HASH5
6 Ford Edge RADIATOR CAP HASH2
7 Ford Edge FUEL PUMP HASH3
该查询必须将新组插入到表 A 中,这些组与表 B 中 HASH 值匹配的现有 Bkey 集匹配。为了描述这一点,我使用了汽车模型的示例。汽车模型中项目的哈希值可以完全匹配(但可能不匹配)。因此,如果所有项目都存在于 OVER GroupValue 中,那么我想将一组新记录插入到表 A 中,其中包含在该组中找到完全匹配的值。在示例数据中,您可以看到 AKey 3 具有 BKeys 2 和 3,并且 Bkeys 6 和 7 是匹配的,因此这 2 条记录将被插入到表 A 中,并为 AKey 生成一个新序列#。