Ich habe eine Tabelle mit Daten, die die Aktionsreihenfolge einer Zeile in einer übergeordneten Tabelle angibt, wobei die Spalten-ID der Fremdschlüssel ist. Spalte SEQ ist die Reihenfolge, in der diese Aktionen stattgefunden haben und ACTION stattgefunden hat.
%Vor%Ich versuche, die Daten so darzustellen, dass ich SUSPEND- und RESUME-Aktionen identifizieren kann, die nicht gelöscht wurden. In diesem Szenario würde mein Ergebnis so aussehen:
%Vor%Dies ist der Fall, weil;
Die SUSPEND-Aktion 2 wurde durch die CLEAR-Aktion 3 entfernt.
Die SUSPEND-Aktion 4 wurde durch CLEAR-Aktion 6 entfernt.
RESUME Aktion 8 wurde durch CLEAR Aktion 9 entfernt.
Die ACTION-Spalte kann andere Aktionen in der Sequenz enthalten, daher habe ich diese zur besseren Übersicht entfernt.
Eine Aktion wird gelöscht, wenn ein CLEAR-Befehl folgt.
Tut mir leid, wenn das verwirrend ist. Ich kann das Schema nicht ändern!
Ich habe versucht, die Frage zu vereinfachen;
%Vor%Das Ergebnis sollte so aussehen:
%Vor%Ich habe ein paar Ansätze ausprobiert, aber ich kann mir einfach nicht vorstellen, wie man das RESUME bei Nummer 3 stoppt.
OK. Jetzt stehle ich Geige von kordirko und Konzept von Simon und es auf meine Art kochen.
%Vor%Was ich von Ihrem Problem verstehe, ist, dass es anfangs nicht richtig erklärt wird. Aber das zweite erwartete Ergebnis macht den Trick. (Ich könnte immer noch falsch liegen)
%Vor%AUSGABE:
%Vor% Was ich getan habe, war das Zuweisen eines Flags zum Überprüfen aufeinanderfolgender Aktionen, die ignoriert werden sollen, wenn sie eine ACTION namens CLEAR
oder eine NEXT ACTION namens CLEAR
haben. Dann habe ich kordirkos Schnipsel von LEAD
-Funktion verwendet, um den Job mit einem Filter für die benötigte Aktion auszuführen.
Sieh die Geige hier
Ich habe versucht von sqliddle von kordirko , um zu vermeiden, das gleiche Schema zu erstellen ... Sorry für den Diebstahl.
Sehen Sie meinen Versuch hier: Ссылка
%Vor%Die Idee ist:
Das einzige, was noch zu tun ist, ist das Hinzufügen von Namen von Aktionen, was ziemlich einfach ist, denn jede erste Aktion ist "SUSPEND" und zweitens, wenn es nicht null ist, "RESUME". Das können Sie leicht selbst tun, wie Sie es wünschen:)
Diese modifizierte Version von kordirkos solution sollte funktionieren:
%Vor%