我已經嘗試了相當長一段時間,但無法弄清楚如何在不使用遊標的情況下做到最好。我想這樣做(在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