Marco Gutenhof
Grünschnabel
Hallo,
ich habe ein kleines Problem mit einer SQL Abfrage, ich habe folgende Tabelle:
id | abstand | sichtfeld | vergrößerung | länge
Es wird jetzt davon ausgegangen, dass ein Wert gesucht werden soll, der nicht in der Datenbank erxistiert, stattdessen soll dann der nächst höhere Wert und der nächst kleinere Wert ausgegeben werden.
Bisher habe ich das so gelöst:
SELECT TOP 1 * FROM db WHERE abstand >= #SUCHWERT# ORDER BY abstand
UND
SELECT TOP 1 * FROM db WHERE abstand <= #SUCHWERT# ORDER BY abstand DESC
Soweit klappt alles noch ganz gut, doch jetzt möchte ich genau das Gleiche mit einen weiteren Feld kombinieren und weiß nicht genau wie ich das anstellen soll. Eigentlich möchte ich das am liebsten mit allen 4 Feldern abstand | sichtfeld | vergrößerung | länge kombinieren können.
Also etwa so (Bsp. Für 2 Felder):
SELECT TOP 1 * FROM db WHERE abstand >= #SUCHWERT# AND sichtfeld >= #SUCHWERT2# OR sichtfeld <= #SUCHWERT2# ORDER BY abstand, sichtfeld
UND
SELECT TOP 1 * FROM db WHERE abstand <= #SUCHWERT# AND sichtfeld >= #SUCHWERT2# OR sichtfeld <= #SUCHWERT2# ORDER BY abstand, sichtfeld
ich habe ein kleines Problem mit einer SQL Abfrage, ich habe folgende Tabelle:
id | abstand | sichtfeld | vergrößerung | länge
Es wird jetzt davon ausgegangen, dass ein Wert gesucht werden soll, der nicht in der Datenbank erxistiert, stattdessen soll dann der nächst höhere Wert und der nächst kleinere Wert ausgegeben werden.
Bisher habe ich das so gelöst:
SELECT TOP 1 * FROM db WHERE abstand >= #SUCHWERT# ORDER BY abstand
UND
SELECT TOP 1 * FROM db WHERE abstand <= #SUCHWERT# ORDER BY abstand DESC
Soweit klappt alles noch ganz gut, doch jetzt möchte ich genau das Gleiche mit einen weiteren Feld kombinieren und weiß nicht genau wie ich das anstellen soll. Eigentlich möchte ich das am liebsten mit allen 4 Feldern abstand | sichtfeld | vergrößerung | länge kombinieren können.
Also etwa so (Bsp. Für 2 Felder):
SELECT TOP 1 * FROM db WHERE abstand >= #SUCHWERT# AND sichtfeld >= #SUCHWERT2# OR sichtfeld <= #SUCHWERT2# ORDER BY abstand, sichtfeld
UND
SELECT TOP 1 * FROM db WHERE abstand <= #SUCHWERT# AND sichtfeld >= #SUCHWERT2# OR sichtfeld <= #SUCHWERT2# ORDER BY abstand, sichtfeld