我有一个叫做数据规则的表。下面给出一些解释。
Data|GroupNum|GroupType|GroupMinOcc|GroupMaxOcc|DataStatus|DataMinOccWithinGroup|DataMaxOccurenceWithinGroup|IDX
ABC |GroupA |Mandatory| 1 | 1 | Mandatory| 1 | 1 |1
DEF |GroupB |Mandatory| 1 | 1 |Mandatory | 1 | 1 |2
GHI |GroupC |Mandatory| 1 | 1 |Mandatory | 1 | 1 |3
JKL |GroupD |Optional | 0 | 1 |Optional | 0 | 1 |4
FFF |Group1 |Optional | 0 | 1 |Mandatory | 1 | 1 |5
RRR |Group1 |Optional | 0 | 1 |Optional | 0 | 2 |6
MMM |Group2 |Optional | 0 | 2 |Mandatory | 1 | 1 |7
PPP |Group2 |Optional | 0 | 2 |Optional | 0 | 1 |8
CCC |Group3 |Optional | 0 | 2 |Optional | 0 | 2 |9
SSS |Group4 |Mandatory| 1 | 2 |Mandatory | 1 | 1 |10
TTT |Group4 |Mandatory| 1 | 2 |Mandatory | 0 | 2 |11
让我先解释一下这个数据规则。
1)一个组可以有多个数据记录 在这里你可以看到GroupA只有ABC数据而第1组有FFF和RRR数据。
2)一组可以是强制性的和可选的。这意味着如果一个群体是强制性的,它肯定会出现其次如果是强制性的,那么它的数据记录也具有强制和可选状态。
例如:检查group4 该组是强制性的,其第一个数据SSS也是强制性的。这意味着该组是强制性的,当它发生时,也应该发生这种数据。但该组中的第二个数据是TTT,这是可选的。无论组是强制性的,但此数据在强制组内是可选的,因此它可以发生0到2次 让我们说这个组出现两次......看起来像这样
Group4示例:有效
SSS
TTT
TTT
SSS
TTT
无效的Group4发生
SSS
SSS
TTT
TTT
TTT
它无效,因为在第二次出现TTT组时发生了3次但不应超过2次
3)如果组是可选的,则可以显示或不显示。
所以正如你所看到的,GroupD,Group2和Group3是可选的,所以在GroupC之后,Group4数据也可以输入数据。就像这样
ABC
DEF
GHI
SSS
TTT
我想从他们各自的组中的数据规则表中捕获确切的IDX号码,如果输入数据不遵循数据规则表中提到的规则。
For example 1st Input Data Example
ABC
DEF
GHI
JKL
JKL
SSS
正如您在此处所见,JKL是可选组中的可选数据。但是如果这个可选组出现这个JKL应该只出现一次。但它来了两次。所以我想要返回IDX 4号。
2nd Data Example.
ABC
DEF
GHI
TTT
这里它应该返回IDX编号10.因为从强制group4强制数据SSS丢失,在数据规则中它的IDX是10
3rd Example
ABC
DEF
GHI
SSS
SSS
TTT
在此,SSS的IDX返回值应为10.因为它发生了两次。正如你在数据规则中看到的那样,整个Group4只能重复一次,每当它发生时,SSS只会出现一次。那是一个错误
许多错误也可能同时发生。 SO ID号需要仅从数据规则表中返回各自的组数据。
在输入数据中,只有一列只包含数据记录。
注意:组数据将仅按照从上到下的数据规则中提到的顺序出现。并且可以在数据规则表中提到的定义的基础上出现或不出现。
任何建议......我可以实现这个目标吗?