phpbar.de logo

Mailinglisten-Archive

immediate neighbour

immediate neighbour

Sebastian Mendel lists at sebastianmendel.de
Don Feb 16 15:30:35 CET 2006


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