OveRRidEMedlem sedan feb. 200112 078 inlägg Jag behöver välja ut minsta skillnaden mellan värdet på ett antal rader och en värde som jag skickar in i SQL:en.
Hur gör jag detta?
Värdena i tabellen kan vara t.ex. 0, 1, -1 och -2. Värdet som skickas in kan vara antingen samma summa, mer eller mindre än någon av ovan värden.
MSSQL Server 7.
@ndersMedlem sedan juni 200032 969 inlägg Jag hade provat typ så här:
SELECT fld-[b]2[/b] as diff, * FROM tabellen ORDER BY diff
OveRRidEMedlem sedan feb. 200112 078 inlägg Nja, jag vill alltså ha den rad där skillnaden är minst av de som finns.
RED. Eller funkar det så? :q Nja..
@ndersMedlem sedan juni 200032 969 inlägg Jag är rädd att jag inte förstår vad du är ute efter.
Mvh
OveRRidEMedlem sedan feb. 200112 078 inlägg Ok, förtydligande. :)
Tabell:
[b]decade | value[/b]
-2 | milliliter
-1 | centiliter
0 | deciliter
1 | liter
Jag skickar in värdet -3. Då vill jag alltså ha tillbaks -2 och milliliter. Skickar jag in värdet 3 vill jag ha tillbaks 1 och liter. Skickar jag in värdet 0 vill jag har tillbaks 0 och deciliter.
Gör detta det lättare? :D
RikardMedlem sedan dec. 199917 055 inlägg En vansinnestanke och som jag dessutom misstänker är lite prestandaseg...
SELECT TOP 1 decade, value, abs([input] - decade) AS diff
FROM Tabell
ORDER BY diff ASC
OveRRidEMedlem sedan feb. 200112 078 inlägg Ok, efter mycket om och men valde jag en lite annorlunda approach. :)
SELECT TOP 1 * FROM table
ORDER BY ABS(US_Decade-[input_value])
Tack för hjälpen med tänket! :D