我已经尝试了相当长一段时间,但无法弄清楚如何在不使用游标的情况下做到最好。我想这样做(在SQL Server)是:SQL Server:如何找到第一次字段为X的记录,并且没有后来的记录不是
- 找到的最早的(由日期),其中标准 = 1 AND NOT之后标准 = 0每个名称和记录类别。
或明示的方式不同:
- 找到日期时标准变成1,而不是再次接通之后0(每个名称和类别)。
某种形式的CTE似乎是有道理的,但我认为这不是我的强项。所以我尝试嵌套查询找到最新的记录标准 = 0,然后选择下一条记录,如果有一个,但我得到不正确的结果。与此相关的另一个挑战是返回记录,其中只有条件的记录 = 1对于名称和类别。
这里的样本数据:
Name Category Criterion Date
------------------------------------------------
Bob Cat1 1 22.11.16 08:54 X
Bob Cat2 0 21.02.16 02:29
Bob Cat3 1 22.11.16 08:55
Bob Cat3 0 22.11.16 08:56
Bob Cat4 0 21.06.12 02:30
Bob Cat4 0 18.11.16 08:18
Bob Cat4 1 18.11.16 08:19
Bob Cat4 0 22.11.16 08:20
Bob Cat4 1 22.11.16 08:50 X
Bob Cat4 1 22.11.16 08:51
Hannah Cat1 1 22.11.16 08:54 X
Hannah Cat2 0 21.02.16 02:29
Hannah Cat3 1 22.11.16 08:55
Hannah Cat3 0 22.11.16 08:56
与行后X的行是我想要检索的人。
这也许不是所有的中端复杂...
理想的情况下我也想获得名称和类别空记录,如果没有这样的记录(例如鲍勃/ CAT2,鲍勃/的Cat3,汉娜/ CAT2,汉娜/的Cat3,汉娜/ 3,4,5) – Peete
通过“没有遵循“你的意思是否立即跟着?例如1 - > 0还是你也考虑1 - > 1 - > 0作为1,然后是0(最左边的1)? –
是@DuduMarkovitz,最左边的1后面跟着0。尽管如此,间接但随后。 – Peete