Mailinglisten-Archive |
Frank Stahl wrote:
> Hallo,
>
> ich hoffe das vielleicht einer mir helfen kann.
>
> Es geht um eine Anwendung die im Bereich Tunnelbau eingesetzt wird.
>
> Zum Verständnis, die Station [m] (Tunnelmeter) , Ring(Ein Tunnel besteht
> aus Ringen) ist Dimensionslos, Date spricht für sich.
>
> Die folgende Tabelle zeigt eine Ausschnitt aus einer Faktentabelle.
>
> Beispiel1: Suche den direkten Nachbar der Station 2480. Als Ergebnis
> würde ich 2483 erwarten. Wenn nach oben oder unten der gleiche Abstand
> ist, dann soll er bitte die jeweils größer nehmen.
>
> Beispiel2: Suche den direkten Nachbar der Station 2488. Als Ergebnis
> würde ich 2489 erwarten.
das nächst höhere:
SELECT *
FROM `fact_dim2dim`
WHERE `station` >= 2489
ORDER BY `station` ASC
LIMIT 1
das nächst kleinere:
SELECT *
FROM `fact_dim2dim`
WHERE `station` <= 2489
ORDER BY `station` DESC
LIMIT 1
daraus ergibt sich: das nächste
(
SELECT *,
`station` - 2489 AS `difference`
FROM `fact_dim2dim`
WHERE `station` >= 2489
ORDER BY `station` ASC
LIMIT 1
)
UNION
)
SELECT *,
2489 - `station` AS `difference`
FROM `fact_dim2dim`
WHERE `station` <= 2489
ORDER BY `station` DESC
LIMIT 1
)
ORDER BY `difference` ASC, -- die nähere
`station` DESC -- die größere
LIMIT 1
... ungetestet ...
--
Sebastian Mendel
www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive