O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Trådstart 16 feb. 2004 11:09 #1 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.
@nders Medlem sedan juni 2000 32 967 inlägg Jag hade provat typ så här:
SELECT fld-[b]2[/b] as diff, * FROM tabellen ORDER BY diff
O OveRRidE Medlem sedan feb. 2001 12 078 inlägg Nja, jag vill alltså ha den rad där skillnaden är minst av de som finns.
RED. Eller funkar det så? Nja..
@nders Medlem sedan juni 2000 32 967 inlägg Jag är rädd att jag inte förstår vad du är ute efter.
Mvh
O OveRRidE Medlem sedan feb. 2001 12 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?
Rikard Medlem sedan dec. 1999 17 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
O OveRRidE Medlem sedan feb. 2001 12 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!