Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Unscharfe Suche nach Zahlen (https://www.delphipraxis.net/12536-unscharfe-suche-nach-zahlen.html)

andy3453 29. Nov 2003 13:35


Unscharfe Suche nach Zahlen
 
Moin Leute,

irgendwie bin ich mit meinem Latein am Ende.
Ich möchte in meiner Datenbank "unscharf" nach Zahlenwerten suchen.
Beispiel

Die Tabelle sieht folgendermaßen aus:

FELDNAME
10
20
30
44
55.5
60
80
usw.

Wenn der User nun in der Tabelle nach 30 sucht ist es kein Problem Ihm den entsprechenden Datensatz anzuzeigen.
Aber wie schaffe ich es, das wenn der Wert 50 ist der nächste passende Datensatz gefunden wird?
Ich glaube das Problem ist ja nicht neu, nur weiss ich ehrlichgesagt auch nicht wie der Fachbegriff dafür heißt, dadurch
wird das "googeln" etwas schwierig :roll:
Ich möchte das eigentlcih auch nur über ein SQL Statement realisieren, wenn das geht.

Ich hoffe auf Eure Hilfe, bitte, bitte

Andy

Basilikum 29. Nov 2003 13:47

Re: Unscharfe Suche nach Zahlen
 
eine Möglichkeit wäre:

Code:
SELECT Feldname,Abs(Feldname - <gesuchter Wert>) AS Dif
FROM Tabellenname
ORDER BY Dif ASC
LIMIT 1

andy3453 29. Nov 2003 15:08

Re: Unscharfe Suche nach Zahlen
 
:gruebel: Ähhh, wie jetzt? :gruebel:

Also ich bekomme einen Syntaxfehler in der ORDER BY Klausel.

Das Andere Problem ist, das ich leider das Statement nicht verstehe. :wall:
Kann mir das jemand erklären, warum es das tun soll, was ich brauche?
Bringt ja nix, selbst wenn es so klappen würde, hab ich noch nichts verstanden :roll:

Oder habe ich meine Frage flasch formuliert und Ihr wisst nicht was ich von Euch will? :zwinker:


viele Grüße
Andy

MrSpock 29. Nov 2003 16:18

Re: Unscharfe Suche nach Zahlen
 
Hallo andy3453,

es kommt darauf an, welchen SQL Server du benutzt.

Eine SQL Statement für dein Problem lautet:

SQL-Code:
SELECT Min(Feldname)
FROM Tabellenname
WHERE Feldname >= :suchwert
Damit findest du den nächst größeren Wert, existiert er nicht oder willst du den nächst kleineren, wäre es

SQL-Code:
SELECT Max(Feldwert)
FROM Tabellenname
WHERE Feldname <= :suchwert
eventuell geht auch

SQL-Code:
SELECT Min(Abs(Feldname - :suchwert))
FROM Tabellenname

andy3453 29. Nov 2003 21:06

Re: Unscharfe Suche nach Zahlen
 
:spin2: danke MrSpock,
:cheers:
genau das hab ich gesucht! Werder es jetzt sofort :coder:


thanx
Andy


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:31 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz