Hallo, ich habe ein für mich relativ komplexes Problem, für dessen Lösung ich bislang nicht einmal einen Ansatz gefunden habe.
Folgende Tabellen-Struktur:
posx und posy stellen mehr oder weniger die Position eines Elementes innerhalb eines Rasters dar. Es hat praktisch wie eine Tabelle Spalten und Zeilen.
Man kann sich das so vorstellen, wie die Kinoplätze in einem Kinosaal. posx wäre hierbei die Sitzreihe und posy der Sitz in dieser Reihe.
status sagt aus, ob diese Position definiert ist oder nicht (Kino: Platz besetzt oder frei).
Das Problem besteht nun darin, alle IDs auszugeben, die in einer bestimmten Anzahl zusammenhängend im Raster und nicht definiert sind, oder besser gesagt Gruppen ausgeben, auf die dieser Zustand zutrifft. Im Kino wäre das z. B. so:
Zeige mir alle Kinosäle (gruppen), die min. 5 zusammenhängende freie Plätze (posy) in einer Reihe (posx) haben.
Im Raster wäre das dann z. B. so:
Die Abfrage müsste also als Ergebnis lediglich die Gruppe 1 ausgeben, da sich nur in dieser Gruppe 5 zusammenhängende "Kinositze" befinden, die noch frei sind (3D bis 3H).
Ich weiß nicht sicher, ob das wirklich verständlich ist, was ich meine. Aber ich hoffe, jemand versteht es und kann mir helfen.
Vielen Dank,
DasD
Anhang: Natürlich kann posx ebenfalls nummerisch sein, falls das die Sache vereinfacht.
Folgende Tabellen-Struktur:
Code:
ID - posx - posy - status - gruppe ---------------------------------------------- 1 - A - 1 - 0 - X 2 - A - 2 - 1 - X 3 - A - 3 - 0 - X 4 - A - 4 - 0 - X 5 - A - 5 - 0 - Y 6 - B - 1 - 0 - Y 7 - B - 2 - 1 - Y usw.
Man kann sich das so vorstellen, wie die Kinoplätze in einem Kinosaal. posx wäre hierbei die Sitzreihe und posy der Sitz in dieser Reihe.
status sagt aus, ob diese Position definiert ist oder nicht (Kino: Platz besetzt oder frei).
Das Problem besteht nun darin, alle IDs auszugeben, die in einer bestimmten Anzahl zusammenhängend im Raster und nicht definiert sind, oder besser gesagt Gruppen ausgeben, auf die dieser Zustand zutrifft. Im Kino wäre das z. B. so:
Zeige mir alle Kinosäle (gruppen), die min. 5 zusammenhängende freie Plätze (posy) in einer Reihe (posx) haben.
Im Raster wäre das dann z. B. so:
Code:
Gruppe 1: A | B | C | D | E | F | G | H 1 0 0 0 0 1 0 0 0 2 1 0 0 1 1 1 0 0 3 1 0 1 0 0 0 0 0 4 1 0 0 1 0 1 0 1 Gruppe 2: A | B | C | D | E | F | G | H 1 0 1 0 1 1 0 0 1 2 1 0 0 1 1 1 0 0 3 1 0 1 0 1 0 1 0 4 1 0 0 1 0 1 0 1
Ich weiß nicht sicher, ob das wirklich verständlich ist, was ich meine. Aber ich hoffe, jemand versteht es und kann mir helfen.
Vielen Dank,
DasD
Anhang: Natürlich kann posx ebenfalls nummerisch sein, falls das die Sache vereinfacht.
Kommentar