Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Приближенное значение / 8 сообщений из 8, страница 1 из 1
23.01.2019, 13:30
    #39763415
insaider
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
Привет,
помогите, пожалуйста, написать запрос, который выведет приближенное значение к таблице "O"

Источники:

Таблица "О"
"c"
2300 5
30000
45000
58000

Таблица "P"
"c", "p"
2300 0 ; 2
30000; 3
45000; 1
58000; 2
...
Рейтинг: 0 / 0
23.01.2019, 13:44
    #39763435
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
insaider,
Наверняка можно проще, но что-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
DECLARE @c TABLE ( a INT)

INSERT INTO @c
VALUES
(22999),
(23004),
(23005),
(30000),
(45000),
(58000)

DECLARE @P TABLE ( a INT)

INSERT INTO @p
VALUES
(23000),
(30000),
(45000),
(58000)

SELECT 
*
FROM @P p
OUTER APPLY
(
	SELECT TOP 1 c
	FROM 	
	(
		SELECT MIN(a) as c
		FROM @C  
		WHERE  a >= p.a
		UNION ALL
		SELECT MAX(a) as c
		FROM @C  
		WHERE  a <= p.a
	) c
	WHERE c.c IS NOT NULL
	ORDER BY p.a - c.c DESC
) x
...
Рейтинг: 0 / 0
23.01.2019, 14:22
    #39763484
insaider
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
TaPaK,

спасибо, подскажите, что делает вот это условие:

ORDER BY p.a - c.c DESC
...
Рейтинг: 0 / 0
23.01.2019, 14:23
    #39763486
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
insaiderTaPaK,

спасибо, подскажите, что делает вот это условие:

ORDER BY p.a - c.c DESC
там наверное правильней ABS(p.a - c.c) DESC
самое близкое из значений сверху и снизу
...
Рейтинг: 0 / 0
23.01.2019, 14:30
    #39763499
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
ну и ASC жеж вместо DESC :)
...
Рейтинг: 0 / 0
23.01.2019, 14:34
    #39763502
insaider
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
TaPaK,

Большое спасибо ! ;)
...
Рейтинг: 0 / 0
23.01.2019, 14:45
    #39763516
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
TaPaKinsaiderTaPaK,

спасибо, подскажите, что делает вот это условие:

ORDER BY p.a - c.c DESC
там наверное правильней ABS(p.a - c.c) DESC
самое близкое из значений сверху и снизу

Опять учат плохому.
Правильнее - сделать два. Индексы поиимеют шансы...
...
Рейтинг: 0 / 0
23.01.2019, 14:47
    #39763522
TaPaK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Приближенное значение
aleks222TaPaKпропущено...

там наверное правильней ABS(p.a - c.c) DESC
самое близкое из значений сверху и снизу

Опять учат плохому.
Правильнее - сделать два. Индексы поиимеют шансы...
Сортировка по двум значением всего
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Приближенное значение / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]