2010-12-20 10 views
1

Angenommen Col enthält den Systemnamen "Apple". Spalte B enthält eine Reihe von IDs, die dem System in Spalte A zugeordnet sind. Diese IDs bedeuten etwas für das System. Col C hat den Zeitstempel, zu dem diese IDs vom System generiert werden.Zurücklaufende Nummern

Dies ist die Abfrage ich die oben genannten Daten zu erhalten, schrieb:

SELECT Name, ID, time 
FROM Xtable 
WHERE (Name='Apple') AND ID in ('1', '2', '3', '4') 
GROUP BY Name, ID, time 

Das Problem bei dieser Abfrage ist, dass sie Zeilen zurückgibt, solange es eine der oben genannten Zahlen enthält (nicht unbedingt in einer Sequenz)

Ausgabe der obigen Abfrage:

Apple 3 12/1/2010 11:04 AM 
Apple 4 12/1/2010 11:58 AM 
Apple 1 12/1/2010 11:00 AM 
Apple 1 12/1/2010 11:01 AM 
Apple 1 12/1/2010 09:05 AM 
Apple 2 12/1/2010 09:10 AM 
Apple 3 12/1/2010 09:40 AM 
Apple 4 12/1/2010 10:00 AM 
Apple 2 12/4/2010 03:25 PM 
Apple 1 12/4/2010 12:47 PM 
. 
. 
. 
. 
. 
. 

ich es so optimieren wollen, dass es Werte in allen drei Spalten zurückgibt, nur wenn die IDs in Spalte B in einem se auftreten Antwort (1,2,3,4). Ich möchte diese Informationen, da die sequenziellen IDs eine Reihe von Ereignissen darstellen, die ich verwende, um einige Informationen zu extrahieren.

+0

'SORT by ID' funktioniert nicht für Sie? – corsiKa

+0

Die Ereignis-ID 2 kann vor der Ereignis-ID 1 auftreten. In diesem Fall sollten die Datensätze ausgeschlossen werden. –

+0

ist die Sequenz basierend auf dem Zeitfeld? oder basierend darauf, wie es eingefügt wurde –

Antwort

0

Es spielt keine Rolle, ob die Ereignis-ID 2 vor der ID 1 auftritt. Alles was ich will, sind alle 4 IDs (1, 2, 3 und 4), die in aufeinanderfolgenden Zeilen vorkommen. Die IDs bedeuten nur etwas, wenn alle zusammen erscheinen. Ich meine, wenn es irgendwelche sich wiederholenden IDs gibt wie: 3, 3, 4, 2, 1; Ich möchte, dass die ersten 3 von der Ausgabe ausgeschlossen werden.