SQL: Datenlücken finden

23/03/2010 - 16:19 von Nicole Wagner | Report spam
Hallo User,


ich habe eine Aufgabe, da komme ich frueher oder spaeter selbst drauf.

Allerdings ist es eine Standardaufgabe.
Gibt es da vielleicht schon eine Stardloesung dafuer?

Ich moechte Datenluecken finden.

Ich habe diese Datenserien:
a 1
a 2
a 3
a 4 x
a 5 x
a 6 x
a 7 x
a 8
a 11 x
a 15 x
b 1
b 3
b 7
b 9
b 11 x
b 13 x
b 16 x
b 19 x
b 111 x
b 1112
c 1

Relevant ist das "x" und etwa der Punkt a 8.
Von a4 bis a7 haben wir durchgehend ein "x" stehen, danach erst wieder
an a11. a8 stellt also eine Unterbrechung dar.

Ich moechte abfragen:
Wenn bei einem gleichen Buchstaben und aufsteigender Sortierung einmal
ein x gestanden ist - wurde die Markierung spaeter einmal unterbrochen?

a1 bis a3 sollen dabei NICHT ausgegeben werden. Ebensowenig b 1112. Ich
suche nur Luecken zwischen dem ersten und dem letzten x.

Default steht das Feld fuer x auf NULL.

Danke fuer Tipps!


Nicole
 

Lesen sie die antworten

#1 Thomas G. Liesner
23/03/2010 - 19:09 | Warnen spam
Nicole Wagner schrieb:
Allerdings ist es eine Standardaufgabe.



Eher nicht.

Aber mit einem simplen Zustandsautomaten ist das mit wenig Aufwand
machbar. Man hat die Stati

0=noch keine Markierung
1=Markierung
2=keine Markierung

Beim Start und beim Buchstabenwechsel wird auf Status 0 geschaltet, von
0 auf 1 wechselt man beim ersten x, auf 2 beim nàchsten Nicht-x. Wenn
dann im Status 2 ein x kommt, hat man eine Lücke gefunden. Hat man sich
die Position des Zustandes 1 gemerkt, weiss man auch die Größe der
Lücke.

Alles kein Hexenwerk, sondern Basiskonzepte, die man nach einigen Jahren
Programmierung langsam kennen sollte.

So long,
Thomas G. Liesner

Ähnliche fragen